我正在实现 DTLS 1.2 并使用密码 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
我正在使用以下步骤创建预主 key 和主 key
1- 使用 API BCryptOpenAlgorithmProvider 的开放算法提供者
2- 使用 API BCryptGenerateKeyPair 生成 key 对
3- 使用 API BCryptExportKey 导出公钥
4- 比使用 API BCryptImportKeyPair 导入其他方公钥
5- 之后使用我的私钥和另一方公钥通过 API BCryptSecretAgreement 生成 secret 协议(protocol)句柄
6- 最后使用 API BCryptDeriveKey 获取 key
我是不是因为我的主 key 不正确而遗漏了什么。
最佳答案
我想这完全取决于您传递给 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/