【问题标题】:python-gnupg sign / verify a tar archivepython-gnupg 签名/验证 tar 存档
【发布时间】: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


【解决方案1】:

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

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

Python/POpen/gpg: Supply passphrase and encryption text both through stdin or file descriptor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 2021-04-05
    • 2014-02-08
    相关资源
    最近更新 更多