我相信,因爲這question,pyOpenSSL已經開始支持簽名(覈查爲pyOpenSSL 0.11。驗證簽名與pyopenssl
我在其上使用M2Crypto別人啓動了一個項目工作。M2Crypto真的很痛因爲它需要使用SWIG因此,我試圖刪除對M2Crypto的依賴,並用pyOpenSSL替換,這很容易通過Pip安裝,並且不需要定製buildpacks以及更多哪些與SWIG相關的內容事情是這樣的
我遇到的問題是取代一點代碼:
key = cert.get_pubkey() # Cert is an M2Crypto X509 object
key = key.get_rsa()
ret = key.verify(hashed, self.sig)
if ret != 1:
# Cert invalid ... etc.
理想我想實現通過pyOpenSSL相同的功能,但覺得我可能已經拿到了棍子的錯誤結束 - 我已經嘗試使用:
crypto.verify(cert, self.sig, hashed, 'sha1')
但失敗 -
[('rsa routines', 'RSA_verify', 'bad signature')]
我不能工作了,無論是失敗,因爲簽名實際上是不好的,還是因爲價值觀我提供crypto.verify實際上不是什麼是應該用於!
我一直在玩的原始代碼是here,需要相當多的工作來整理,但一直試圖在整個重構之前一次替換功能。任何指針將非常感激! pyOpenSSL能否在這裏取代M2Crypto的功能,我是否正確地做了這件事?