首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gnupg加密文件失败ENCRYPTION_COMPLIANCE_MODE

gnupg加密文件失败ENCRYPTION_COMPLIANCE_MODE
EN

Stack Overflow用户
提问于 2020-01-30 13:58:04
回答 1查看 370关注 0票数 1

我使用的是Python 3.7.6,gnupg 2.3.1,我试图加密一个文件但失败了,下面是我的代码:

代码语言:javascript
复制
gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)

with open("/my_data_00000.dat", "rb") as f:
  gpg.encrypt(f, <finger print from import_result.results>, output="/my_data_00000.dat.gpg")

失败: ValueError:未知状态消息:'ENCRYPTION_COMPLIANCE_MODE‘

我很困惑的一件事是,如果我运行以下代码,关键是:

代码语言:javascript
复制
gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)

它显示的结果如下:

代码语言:javascript
复制
[{'fingerprint': 'finger-print-1',
  'status': 'Not actually changed\n'},
 {'status': 'key considered'}]

如果我运行以下代码:

代码语言:javascript
复制
pubkeys = gpg.list_keys()
print("pubkeys: ")
pprint(pubkeys)

它显示的结果如下:

代码语言:javascript
复制
pubkeys: 
[{'algo': '1',
  'date': '1523494796',
  'dummy': '',
  'expires': '',
  'fingerprint': 'finger-print-2',
  'keyid': '38MOQQBD63C93BE4',
  'length': '2048',
  'ownertrust': '-',
  'rev': {},
  'sigs': {'filetrans <test@test.com>': []},
  'subkeys': [['xxx', 'e'], ['xxxxx', 'es']],
  'trust': '-',
  'type': 'pub',
  'uids': ['filetrans <test@test.com>']}]

我注意到finger 1和finger-print-2是不同的,我应该使用哪一个来加密文件?

如果我使用成功加密的相同公钥直接从命令行运行:

代码语言:javascript
复制
gpg --output /my_data_00000.dat.gpg --encrypt --recipient <test@test.com> /my_data_00000.dat

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 20:38:50

你有没有考虑过改用python-gnupg?我也遇到了同样的问题。我删除了gnupg并安装了python-gnupg。这似乎为我做了这个把戏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59979887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档