【问题标题】:PKCS1_PSS sign() methodPKCS1_PSS sign() 方法
【发布时间】:2017-04-15 13:39:52
【问题描述】:

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

我正在使用 Python 进行编码,这似乎很重要:

#importing the library
from Crypto.Signature import PKCS1_PSS

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

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

“此检查检测到应该解析但没有解析的名称。由于 动态调度和鸭子类型,这在有限但 有用的案例数。支持顶级和类级项目 比实例项更好。”

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

【问题讨论】:

    标签: python digital-signature signature pycrypto


    【解决方案1】:

    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)
    

    【讨论】:

    • 非常感谢您的回答^^
    猜你喜欢
    • 2019-11-13
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多