Подтвердить подпись с pyopenssl
Я считаю, что с этоговопрос, pyOpenSSL начал поддерживать проверку подписей (по состоянию наpyOpenSSL 0.11.
Я работаю над проектом, который был начат кем-то другим, используяM2Crypto, M2Crypto действительно больно включать на такие платформы, какHeroku так как требует использованияSWIG, Следовательно, я пытаюсь удалить зависимость от M2Crypto и заменить ее на pyOpenSSL, которую легко установить через Pip и которая не требует пользовательских пакетов компоновки и многого другого, что связано с 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, на самом деле не те, для которых он должен использоваться!
Исходный код, с которым я играл,Вот и нужно немного поработать, чтобы привести в порядок, но пытался сделать это один шаг за раз, заменяя функциональность перед полным рефакторингом. Любые указатели будут высоко оценены! Имеет ли pyOpenSSL возможность заменить функциональность M2Crypto здесь, и я собираюсь сделать это правильно?