首页 > 解决方案 > 使用 pgp_key.from_blob(key_string) 时的 ValueError("Expected: ASCII-armored PGP data")

问题描述

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

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

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

标签: pythonencryptionopenpgp

解决方案


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

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

  2. 将您的编码密钥放在您想要的位置(在我的情况下为 AWS Secrets Manager)

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

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

推荐阅读