PKCS1_PSS sign()方法

时间:2017-04-15 13:39:53

标签: python digital-signature signature pycrypto

我一直试图修复一个问题,但无数次都失败了。我需要使用方法,sign(),并且我已导入正确的库,但仍然无法识别它。

我用Python编写代码,这就是我看来很重要的东西:

#importing the library
from Crypto.Signature import PKCS1_PSS

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

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

  

“此检查会检测应该解决的名称,但不会检测到。”   动态调度和鸭子打字,这是有限的但可能   有用的案件数量。支持顶级和类级别的项目   比实例项更好。“

有没有人对如何解决这个问题或者知道我做错了什么有任何建议?

1 个答案:

答案 0 :(得分: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)

但它应该类似于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)