python - 如何在 Python 中使用 M2Crypto 重新创建以下签名 cmd 行 OpenSSL 调用?

标签 python openssl x509 m2crypto

这在命令行中非常有效,我想在 Python 代码中使用 M2Crypto 来做同样的事情。

openssl smime -binary -sign -signer certificate.pem -inkey key.pem \
                    -in some_file.txt -out signed_file -outform DER \
                    -passin pass:somepassword

最佳答案

这就是我一直使用 M2Crypto 对文件进行签名的方式。

text = open('/path/to/some_file.txt').read()
passphrase = 'somepassword'
buffer = M2Crypto.BIO.MemoryBuffer(text)
signer = M2Crypto.SMIME.SMIME()
signer.load_key('/path/to/key.pem', '/path/to/certificate.pem', lambda x: passphrase)
p7 = signer.sign(buffer, flags=M2Crypto.SMIME.PKCS7_DETACHED)
out = M2Crypto.BIO.MemoryBuffer()
p7.write_der(out)
signature = out.getvalue()
print signature

这对我来说效果很好。如果您的签名不是您想要的,您可能需要尝试使用 signer.sign 中的标志。

关于python - 如何在 Python 中使用 M2Crypto 重新创建以下签名 cmd 行 OpenSSL 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819188/

相关文章:

python - 使用 Python/Numpy 将数据拟合到多项式曲线

Wordpress/站点运行状况/REST API 错误/环回错误

powershell - 如何在不提示输入密码的情况下读取 pfx 文件的指纹

c - Windows CE 6.0 上的 ASN1_TIME 错误

python - Pyspark数据框架中的访问结构元素如何?

python - 将矩阵分割成更小的 block 并根据其值执行某些操作

通过 openssl 函数使用 sha1withRsa 检查文件是否正确

java - 验证 SOAP 响应 xml 时间戳和签名 X509 spring-ws-security

python - Flask看不到环境变量

python - 解析 X509 专有名称