我正在尝试使用C#加密传入的文档,使用GnuPG进行输入重定向。我需要在单个步骤中使用-se(签名和加密),这需要输入密码。但出于某些原因,输入重定向不起作用。感谢您的帮助。 控制流程进入else块。 我不确定是否存在死锁或子进程(gpg.exe)正在等待输入。
pgpproc = new Process();
pgpproc.StartInfo.FileName = exeFilePath;
pgpproc.StartInfo.RedirectStandardOutput = false;
pgpproc.StartInfo.RedirectStandardInput = true;
pgpproc.StartInfo.UseShellExecute = false;
pgpproc.StartInfo.Arguments = "-a -o C:\PGPStaging\output.pgp -se -r recipientID C:\PGPStaging\input.txt";
pgpproc.StartInfo.CreateNoWindow = true;
pgpproc.Start();
StreamWriter myStreamWriter = pgpproc.StandardInput;
myStreamWriter.Write("*****");
myStreamWriter.Close();
if (pgpproc.WaitForExit(waittime))
{
//success
}
else
{
//failure
pgpproc.Kill();
pgpproc.WaitForExit();
}
`