Próbuję napisać aplikację konsoli, która odszyfrowuje podpis gpg na żądanie. Wszystko idzie dobrze, Z WYJĄTKIEM na część, w której prosi o moje hasło GPG. Jak wywołać gpg --decrypt
z wiersza poleceń bez okna dialogowego hasła?Odszyfrowywanie ciągu GPG z wiersza poleceń
Oto mój kod do tej pory:
var startInfo = new ProcessStartInfo("gpg.exe");
startInfo.Arguments = "--decrypt"; //this is where I want to insert "--passphrase MyFakePassword"
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\GNU\GnuPG";
var proc = Process.Start(startInfo);
var sCommandLine = stringData + "\n"+(char)26+"\n"; //stringData is the encrypted string
proc.StandardInput.WriteLine(sCommandLine);
proc.StandardInput.Flush();
proc.StandardInput.Close();
var result = proc.StandardOutput.ReadToEnd();
Próbowałem za pomocą --passphrase MyFakePassword
, --passphrase-fd MyFakePassword
a nawet --passphrase-fd 0
z moim hasłem w pierwszym wierszu wejścia. Chciałbym uniknąć umieszczania mojego hasła w pliku txt na komputerze, na którym działa ten kod, jeśli w ogóle jest to możliwe.
Z góry dziękuję za pomoc.
Dzięki za to! Zmarnowane dni. Pobieranie pliku ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe i instalowanie go rozwiązało problem dla mnie –