Encryption 由应用程序运行时GPG失败

Encryption 由应用程序运行时GPG失败,encryption,gnupg,Encryption,Gnupg,如果我从命令行运行gpg对文件进行签名和加密,它就可以工作。我有一个应用程序尝试相同的方法,我得到了以下错误。该应用程序以前进行过签名和加密,因此我认为这不是权限问题。有什么想法吗 在windows上运行。GnuPG 1.4.2.2 gpg:keyblock resourceC:/Program Files/GNU/GnuPG”--输出D:/WEA/ACH/milw472b.gpg--yes--batch--armor--recipient JPMC_ECS_PROD_2015--default

如果我从命令行运行gpg对文件进行签名和加密,它就可以工作。我有一个应用程序尝试相同的方法,我得到了以下错误。该应用程序以前进行过签名和加密,因此我认为这不是权限问题。有什么想法吗

在windows上运行。GnuPG 1.4.2.2

gpg:keyblock resource
C:/Program Files/GNU/GnuPG”--输出D:/WEA/ACH/milw472b.gpg--yes--batch--armor--recipient JPMC_ECS_PROD_2015--default keywea@weatrust.com--passphrase fd 0--no verbose--sign--encrypt D:/WEA/ACH/ACH\secring.gpg:“文件打开错误”
gpg:keyblock resource
C:/Program Files/GNU/GnuPG”--输出D:/WEA/ACH/milw472b.gpg--yes--batch--armor--recipient JPMC_ECS_PROD_2015--default keywea@weatrust.com--passphrase fd 0--no verbose--sign--encrypt D:/WEA/ACH/ACH\pubring.gpg:“文件打开错误” gpg:未找到有效的OpenPGP数据。
gpg:处理消息失败:eof

为什么您的程序包含指向公钥和密钥环的路径?GPG应该在主目录中找到它们,如果您正在为这些文件使用不同的位置,那么您需要指定新的主目录(使用--homedir标志),或者使用相关标志(--keyring和--secret keyring)在两个keyring文件前加上相应的标志


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

在我的情况下,
mingw
附带的
gpg
命令(通过GitHub for Windows)没有设置
~/.gnupg
目录。使用
gpg--homedir~/.gnupg
成功了。谢谢是的,Windows在指定homedir时会做一些奇怪的事情。您始终可以使用
gpg--version
检查它是什么,因为homedir位置正好位于支持的算法之上。在我的例子中,它设置正确(甚至在安装gpg4win之前就在bash中),但没有启动。通过
--homedir
运行它并(再次?)明确地设置它,成功了。啊,好吧无论如何谢谢你的帮助!