我正在实现DTLS 1.2并使用密码TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

我正在使用以下步骤创建预主密钥和主密钥

1-使用API​​ BCryptOpenAlgorithmProvider的开放算法提供程序

2-使用API​​ BCryptGenerateKeyPair生成密钥对

3-比使用API​​ BCryptExportKey导出公钥

4-比使用API​​ BCryptImportKeyPair导入对方公共密钥

5-之后,使用API​​ BCryptSecretAgreement使用我的私钥和其他方的公钥生成秘密协议句柄

6-最后使用API​​ BCryptDeriveKey获取密钥

我是否缺少某些东西,因为我的主密钥不正确。

最佳答案

我猜这一切都取决于您传递给BCryptDeriveKey的参数。
您应该在基于SHA256而不是MD5和SHA1的参数中指定TLS 1.2伪随机函数作为TLS 1.1 / DTLS 1.0。

关于ssl - DTLS 1.2主 key 派生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37428233/

10-10 11:34