我有一个python脚本,用于自动化GPG / PGP文件加密(在其他一些任务中),我遇到一个问题,就是在脚本中捕获gunpg引发的错误。整体设置是我在数据库表中配置变量并将它们拉入脚本以加密文件。
所以我正在考虑捕获与加密过程失败相关的错误(例如数据库中键入错误的键)。当我使用坏密钥从python shell执行加密时,我收到以下错误:
<gnupg.Crypt object at 0x7f49d0c51b50>
我正在尝试捕获该错误并将信息发送到日志文件,以便我可以在设置时更好地调试任何问题。以下是与此相关的脚本代码:
try:
gpg.encrypt_file(open_file,pub_key,always_trust=True,output=enc_file)
except:
logger.error('ERROR: check the keystore and/or public key')
当我尝试验证加密文件是否存在时,我刚刚在我的脚本中发现加密过程失败了。
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
<gnupg.Crypt object at 0x7f49d0c51b50>
是gpg.encrypt_file()
的返回值,不是例外。 Python控制台只是为您显示它,因为您没有将它分配给变量。
请注意encrypt_file()
州的docs:
为加密提供的任何公钥都应该是可信的,否则加密会失败但没有任何警告。 这是因为gpg只是向控制台输出一条消息,但没有提供Python包装器可以使用的特定错误指示。
据推测,这也适用于密钥库中不存在密钥的情况。