【发布时间】:2018-08-28 20:10:51
【问题描述】:
我正在使用 python-gpg 签名/加密/验证/解密 tar 存档。
代码 sn-p -
# import private key into gnupghome
_pvtKey = urllib2.urlopen(_certurl)
_pv_data = _pvtKey.read()
gpg.import_keys(_pv_data)
.....
stream = open("/tar/at/some/path/arh.tar", "rb")
status = gpg.sign_file(stream, passphrase=_salt, detach=True, output="/output/sig/here.sig")
代码生成的sig文件就好了。但是,如果我尝试使用公钥验证 sig / tar,我会收到以下消息 -
gpg: armor header: Version: GnuPG v1
gpg: Signature made Tue 28 Aug 2018 07:48:28 PM UTC using RSA key ID 6B93AF63
gpg: using PGP trust model
gpg: BAD signature from "abc@def.com"
gpg: binary signature, digest algorithm SHA1
相反,如果我尝试直接在 linux 上生成 sig 文件并验证,它工作正常。
我对此失去了理智,请指点?
【问题讨论】:
-
看起来像符号生成过程中的一些问题。如果我使用带有 pvt 键的命令行手动生成 sig 文件并尝试从 python 包装器中进行验证,它工作正常。让我想到了 sig 生成过程的一些问题。
-
如果我选择非分离模式,那么生成的文件就会得到很好的验证。我如何从这个文件中检索数据?我应该提供原始 tar 以及签名过程中生成的文件吗?
-
以防万一其他人遇到此错误,我通过完全离开图书馆并通过 Popen 进行签名来解决它。以下参考资料有所帮助 - jeromebelleman.gitlab.io/posts/devops/pygpgstdin stackoverflow.com/questions/11367140/…
标签: python gnupg gpg-signature