2013-08-01 44 views
3

如果我运行gpg从命令行签名并加密文件,它将起作用。我有一个应用程序,尝试相同的,我得到以下错误。该应用程序之前曾进行签名和加密,所以我不认为这是一个权限问题。有任何想法吗?当通过应用程序运行时,GPG失败

在窗口上运行。 GnuPG的1.4.2.2

GPG:密钥组资源C:/Program Files/GNU/GnuPG" --output D:/WEA/ACH/milw472b.gpg --yes --batch --armor --recipient JPMC_ECS_PROD_2015 --default-key [email protected] --passphrase-fd 0 --no-verbose --sign --encrypt D:/WEA/ACH/ACH \secring.gpg': file open error gpg: keyblock resource C:/ Program Files文件/ GNU/GnuPG的” --output d:/WEA/ACH/milw472b.gpg --yes --batch --armor --recipient JPMC_ECS_PROD_2015 - -default-key [email protected] --passphrase -fd 0 - 不详细--sign --encrypt D:/ WEA/ACH/ACH \ pubring.gpg':文件打开错误 gpg:无效的OpenPGP数据发现 gpg:处理消息失败:eof

回答

1

为什么你的程序包括通向公共密钥和密钥环的路径?GPG应该在主目录中找到它们,如果你使用不同的位置来存放这些文件,那么你要么需要指定新的主目录(带有--homedir标志),要么在相关标志前加上两个密钥环文件(--key环和--secret-keyring)。

事实上,该命令似乎试图将公钥和密钥圈加密到“JPMC_ECS_PROD_2015”收件人。如果“JPMC_ECS_PROD_2015”不是组名(在gpg.conf文件中指定)或在您的程序的代码中的其他地方指定,则会生成与无效收件人(或收件人格式)有关的错误。

+0

在我的情况下,'mingw'(通过GitHub for Windows)附带的'gpg'命令没有设置'〜/ .gnupg'目录。使用'gpg --homedir〜/ .gnupg'完成了这个任务。谢谢! – BigBlueHat

+0

是的,Windows在指定homedir时可以做一些奇怪的事情。随着homedir位置立即位于支持的算法之上,您可以始终使用'gpg --version'来检查它是什么。 – Ben

+0

在我的情况下,它被正确设置(甚至在安装gpg4win之前在bash中),但它没有启动。通过“--homedir”明确地设置它(再次?)来运行它,取得了诀窍。呃,好吧。 :)谢谢在任何情况下的帮助! – BigBlueHat

相关问题