这是我在这里的第一个问题,因为我还没有找到解决方案。希望有人对此问题有答案。
我尝试使用 DSA(数字签名算法)和 pyOpenSSL 包装器对消息进行签名和验证。
我在下面创建了一个示例:
from OpenSSL.crypto import TYPE_DSA, Error, PKey
from OpenSSL.crypto import FILETYPE_PEM, sign
from Crypto.Hash import SHA
key = PKey()
key.generate_key(TYPE_DSA, 1024)
message = "abc"
digest = SHA.new(message).digest()
data_to_sign = base64.b64encode(digest)
signature = sign(key, data_to_sign, 'sha1')
运行这段代码后,我会得到以下结果:
OpenSSL.crypto.Error: [('digital envelope routines', 'EVP_SignFinal', 'wrong public key type')]