簡體   English   中英

GnuPG + Web服務+ ASP.NET

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM