我正在使用以下代码查询当前的 TLS 连接:
SecPkgContext_ConnectionInfo data;
QueryContextAttributes(&myHandle, SECPKG_ATTR_CONNECTION_INFO, &data);
它返回所有字段的正确结构:
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;
但是,该字段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
还可以具有哪些其他值?