Sto provando a scrivere un'applicazione console che decrittografa una firma gpg su richiesta. Tutto sta andando bene, ECCETTO per la parte in cui richiede la mia password GPG. Come posso chiamare gpg --decrypt
dalla riga di comando senza una finestra di dialogo password?Decrittografia di una stringa GPG dalla riga di comando
Ecco il mio codice finora:
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();
Ho provato con --passphrase MyFakePassword
, --passphrase-fd MyFakePassword
e anche --passphrase-fd 0
con la password sulla prima riga di input. Mi piacerebbe evitare di inserire la mia password in un file txt sulla macchina che sta eseguendo questo codice, se possibile.
Grazie in anticipo per qualsiasi aiuto.
Grazie per questo! Giorni sprecati. Scarica ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe e installalo risolvendo il problema per me –