[英]GnuPG + Webservice + ASP.NET
我精疲力盡了。 我已經安裝了GnuPG並從另一個GnuPG實例導出了秘密密鑰和兩個公共密鑰(我自己和我的一個客戶端)。 我嘗試在本地計算機上配置“我的加密/解密”方法。
當我從一個小的控制台應用程序運行加密方法時,它的效果很好。 當我從本地計算機上的Web服務運行此方法(相同!-具有相同的主體)時,我的ExitCode = 2。
實際上很高興捕獲錯誤消息,但對他們的身體不滿意。
“ gpg:沒有默認密鑰:密鑰不可用gpg:XXXXXXXXXXXXXXXX.xml:簽名+加密失敗:密鑰不可用”
我該怎么辦? 怎么了?
最好的問候,Karol Bladek
static bool EncryptPGP(string inFile, string outFile)
{
try
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\GNU\GnuPG"); //LocalMachine
if (key != null)
{
string path = key.GetValue("Install Directory").ToString();
string pgpPath = string.Format("{0}\\gpg.exe", path);//@"C:\tools\GNU\GnuPG\gpg.exe";
string password = "No no no no no";
string keyName = "hihi";
string args = string.Format(@"--batch --yes --passphrase {0} --recipient {1} --encrypt --output ""{2}"" --sign ""{3}""", password, keyName, outFile, inFile);
Process proc = Process.Start(pgpPath, args);
if (!proc.HasExited)
{
proc.WaitForExit();
}
return proc.ExitCode == 0;
}
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
return false;
}
密鑰環文件是基於每個用戶創建的。 運行控制台應用程序時,它將在您的目錄中查找PGP密鑰環文件,而當在Web服務中運行時,它將在該Web服務使用的用戶標識的目錄中查找。
繼續打開cmd,轉到GPG安裝目錄,然后鍵入gpg -h。 在頂部附近的某個位置,它將為您顯示登錄用戶的密鑰環文件所在的路徑。
要解決此問題,您可以將密鑰環文件復制到Web服務用戶希望找到的位置。 不確定gpg是否有任何命令行選項來選擇其他密鑰環文件位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.