我正在尝试使用 ECDiffieHellmanCng 类在桌面和通过 BLE 连接的设备之间执行 key 交换操作。系统规范要求使用 HKDF 来派生 key 。这似乎不是 ECDiffieHellmanCng 类中哈希函数的选项。有没有办法做到这一点?然后我需要获取生成的 key 并将其传递到 AesCng 对象中。
最佳答案
ECDiffieHellmanCng 很糟糕,因为它强制您使用三个预定义的后处理 key 派生函数(Hash、Hmac 或 Tls)之一。如果这些都不符合您的协议(protocol),那您就不走运了。
您也许可以使用 Hmac 变体,因为这是 HKDF(“提取”)的第一个内部操作。只需将 HmacKey 属性设置为 HKDF 中的盐即可。然后自己手动进行第二次Hmac操作(“展开”)得到最终的HKDF结果。
关于c# - 如何将 HKDF 与 ECDiffieHellmanCng 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007915/