openssl使用的密钥协议(或密钥派生)函数是什么?

时间:2017-09-26 17:13:21

标签: openssl cryptography public-key-encryption cryptographic-hash-function wincrypt

我正在尝试将openssl代码替换为CNG winapi代码。以下是我所拥有的准系统openssl代码。

cv2.matchTemplate

上面的代码生成了一个256字符十六进制字符串(128字节)的共享密钥。什么是openssl用来创建这样的密钥的密钥协商功能。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

它没有。或者" NULL KDF"或f(x) -> x

DH_compute_key执行原始DH操作并返回结果。

BCryptDeriveKey所记录的KDF值均未返回原始值。他们总是有可能添加尚未进入文档的BCRYPT_KDF值,您需要从最新的SDK版本中检查bcrypt.h

答案 1 :(得分:2)

在使用任何KDF之前,您获得的只是Diffie-Hellman(DH)密钥协议的直接结果。除此之外,我不确定你期望我们说什么。它是一个无符号大端数,范围最大为密钥大小(1024位),以字节为单位(128字节)。

那当然是BCRYPT_DH_ALGORITHM