Tôi tin rằng kể từ question này, pyOpenSSL đã bắt đầu hỗ trợ việc xác minh chữ ký (tính đến pyOpenSSL 0.11.Xác nhận chữ ký với pyopenssl
tôi đang làm việc trên một dự án được bắt đầu bởi một người nào khác sử dụng M2Crypto. M2Crypto thực sự đau đớn để bao gồm trên các nền tảng như Heroku vì nó yêu cầu sử dụng SWIG. Do đó tôi đang cố gắng loại bỏ sự phụ thuộc vào M2Crypto và thay thế bằng pyOpenSSL dễ cài đặt qua Pip, và không yêu cầu buildpacks tùy chỉnh và nhiều thứ khác liên quan đến SWIG
Vấn đề tôi đang gặp đang thay thế một chút mã:
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.
Lý tưởng nhất là tôi muốn thực hiện các chức năng tương tự qua pyOpenSSL, nhưng cảm thấy tôi có thể có được khi kết thúc sai trái của thanh - Tôi đã cố gắng sử dụng:
crypto.verify(cert, self.sig, hashed, 'sha1')
Nhưng này không thành công -
[('rsa routines', 'RSA_verify', 'bad signature')]
tôi không thể làm việc ra cho dù đó là thất bại vì chữ ký là thực sự xấu, hoặc vì các giá trị tôi cung cấp crypto.verify thực sự không phải những gì nó là vụ phải được sử dụng cho!
Mã ban đầu tôi đã chơi với là here và cần một chút công việc để dọn dẹp, nhưng đã cố gắng thực hiện từng bước một thay thế chức năng trước khi tổng kết cấu trúc lại. Bất kỳ con trỏ nào cũng sẽ được đánh giá cao! Có pyOpenSSL có khả năng thay thế các chức năng M2Crypto ở đây, và tôi đang đi về nó đúng cách?