SSPI Schannel API returns 0xAE06 或 CALG_ECDH_EPHEM 的未记录值
SSPI Schannel API returns undocumented value of 0xAE06 or CALG_ECDH_EPHEM
我正在使用以下代码查询当前的 TLS 连接:
SecPkgContext_ConnectionInfo data;
QueryContextAttributes(&myHandle, SECPKG_ATTR_CONNECTION_INFO, &data);
它 returns 具有所有字段的正确结构:
typedef struct _SecPkgContext_ConnectionInfo {
DWORD dwProtocol;
ALG_ID aiCipher;
DWORD dwCipherStrength;
ALG_ID aiHash;
DWORD dwHashStrength;
ALG_ID aiExch;
DWORD dwExchStrength;
} SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo;
根据 MSDN 文档:https://docs.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-secpkgcontext_connectioninfo
然而,字段 aiExch
的值为 0xAE06,我猜(来自 wincrypt.h 文件)被定义为 CALG_ECDH_EPHEM
,但文档仅提及两个可能的值:
CALG_RSA_KEYX 0xA400 // RSA key exchange
CALG_DH_EPHEM 0xAA02 // Diffie-Hellman key exchange.
现在问题:
- 0xAE06 / CALG_ECDH_EPHEM是什么意思?
- 字段
aiExch
可以有哪些其他值?
来自ALG_ID:
CALG_ECDH_EPHEM | 0x0000ae06 | Ephemeral elliptic curve Diffie-Hellman key exchange algorithm.
[!Note]
This algorithm is supported only through
Cryptography API: Next Generation
Windows Server 2003 和 Windows XP:不支持该算法。
我不能告诉你还会出现什么。
我正在使用以下代码查询当前的 TLS 连接:
SecPkgContext_ConnectionInfo data;
QueryContextAttributes(&myHandle, SECPKG_ATTR_CONNECTION_INFO, &data);
它 returns 具有所有字段的正确结构:
typedef struct _SecPkgContext_ConnectionInfo {
DWORD dwProtocol;
ALG_ID aiCipher;
DWORD dwCipherStrength;
ALG_ID aiHash;
DWORD dwHashStrength;
ALG_ID aiExch;
DWORD dwExchStrength;
} SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo;
根据 MSDN 文档:https://docs.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-secpkgcontext_connectioninfo
然而,字段 aiExch
的值为 0xAE06,我猜(来自 wincrypt.h 文件)被定义为 CALG_ECDH_EPHEM
,但文档仅提及两个可能的值:
CALG_RSA_KEYX 0xA400 // RSA key exchange
CALG_DH_EPHEM 0xAA02 // Diffie-Hellman key exchange.
现在问题:
- 0xAE06 / CALG_ECDH_EPHEM是什么意思?
- 字段
aiExch
可以有哪些其他值?
来自ALG_ID:
CALG_ECDH_EPHEM | 0x0000ae06 | Ephemeral elliptic curve Diffie-Hellman key exchange algorithm.
[!Note]
This algorithm is supported only through Cryptography API: Next GenerationWindows Server 2003 和 Windows XP:不支持该算法。
我不能告诉你还会出现什么。