1

我正在使用 python-gpg 签名/加密/验证/解密 tar 存档。

代码片段 -

# 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 文件并进行验证,它工作正常。

我对此失去了理智,请指点?

4

1 回答 1

0

以防万一其他人遇到此错误,我通过完全离开图书馆并通过 Popen 进行签名来解决它。以下参考资料有所帮助 -

http://jeromebelleman.gitlab.io/posts/devops/pygpgstdin/

Python/POpen/gpg:通过标准输入或文件描述符提供密码和加密文本

于 2018-08-29T18:07:36.740 回答