【问题标题】:ValueError("Expected: ASCII-armored PGP data") when using pgp_key.from_blob(key_string)使用 pgp_key.from_blob(key_string) 时的 ValueError("Expected: ASCII-armored PGP data")
【发布时间】:2021-05-29 06:46:37
【问题描述】:

在尝试解析密钥时使用 pgp_key.from_blob(key_string) 时出现 ValueError("Expected: ASCII-armored PGP data")。

pgp_key = pgpy.PGPKey()
key = pgp_key.from_blob(key_string);

我也尝试使用 parse 方法,但得到了同样的错误。

【问题讨论】:

  • 已发布的用于密钥导入的 sn-p 似乎没问题,s。 PGPy documentation。因此,它可能是关键。 from_blob() 读取二进制或 ASCII 装甲密钥。 ASCII 装甲是 PGP 上下文中的二进制到文本编码,s。例如here。可能您的密钥不完整或损坏,例如如果标题丢失,我可以重现错误。
  • 谢谢@Topaco 编码有问题。我能够修复它。

标签: python encryption openpgp


【解决方案1】:

我通过以下方式修复了此错误:

  1. 将您的密钥作为文件,运行base64 /path/to/file_name new_encoded_file_name

  2. 将您的编码密钥放在您想要的位置(在我的例子中是 AWS Secrets Manager)

  3. 在您的程序中,添加以下行BEFORE获取您的 pgp 密钥:

key_string = base64.decode(key_string)
  1. 现在key = pgp_key.from_blob(key_string) 将不再抛出错误,因为解码后的字符串将是一个 ASCII 装甲字节数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2021-05-05
    • 2022-06-14
    • 2020-07-25
    相关资源
    最近更新 更多