PKCS1_PSS sign() 方法

PKCS1_PSS sign() method

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

我在 Python 中编码,这就是我所拥有的,这似乎很重要:

#importing the library
from Crypto.Signature import PKCS1_PSS

[...]
signer = PKCS1_PSS.new(keypair)
sig = PKCS1_PSS.sign(keypair)

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

"This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items."

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

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)

但是应该是下面类似于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)