PKCS1_PSS sign()方法

Pio*_*ger 2 python signature digital-signature pycrypto

我一直在尝试解决问题,但是失败了无数次。我需要使用方法sign(),并且导入了正确的库,但是仍无法识别。

我正在用Python进行编码,这就是我认为重要的内容:

#importing the library
from Crypto.Signature import PKCS1_PSS

[...]
signer = PKCS1_PSS.new(keypair)
sig = PKCS1_PSS.sign(keypair)
Run Code Online (Sandbox Code Playgroud)

但是sign()方法是该库中整个代码中唯一无法识别的东西:

“这种检查可以检测到应该解析但不能解析的名称。由于动态调度和鸭子输入,在有限但有用的情况下,这是可能的。与实例项相比,对顶级和类级项的支持更好。”

有人对如何解决此问题有任何建议或知道我做错了什么吗?

Art*_* B. 5

PKCS1_PSS的文档错误。目前它说:

from Crypto.Signature import PKCS1_PSS
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from Crypto import Random

message = 'To be signed'
key = RSA.importKey(open('privkey.der').read())
h = SHA.new()
h.update(message)
signer = PKCS1_PSS.new(key)
signature = PKCS1_PSS.sign(key)
Run Code Online (Sandbox Code Playgroud)

但这应该类似于PKCS1_v1_5的文档。

from Crypto.Signature import PKCS1_PSS
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from Crypto import Random

message = 'To be signed'
key = RSA.importKey(open('privkey.der').read())
h = SHA.new()
h.update(message)
signer = PKCS1_PSS.new(key)
signature = signer.sign(h)
Run Code Online (Sandbox Code Playgroud)