Я создаю .bat файл в файле с переменными с StreamWriter для генерации CSR.
string[] lines =
{
"ECHO OFF",
"CLS",
"set default_keystore_pwd=" + password,
"req -out " + CN + "_csr -newkey rsa:2048 -passin pass:%default_keystore_pwd% -keyout " + CN + "_prv.key -subj "+"\"/C=" +Country+"/ST=" + State + "/L=" + City + "/O=CompanyXXX/OU=" + OU + "/CN=" + CN+"/emailAddress="+Email+"\"", // arguments
"start notepad "+CN+"_csr" // opens generated file
};
using (StreamWriter outputFile = new StreamWriter(Path.Combine(csr, "gen.bat")))
{
foreach (string line in lines)
outputFile.WriteLine(line);}
cmd.StandardInput.WriteLine("gen.bat"); // running generated .bat file
Я пытался добавить -passin pass:%default_keystore_pwd%
в .bat, но когда запускается cmd (для gen.bat), он все равно просит ввести пароль.
использование StandartInput не помогает, так как выполняется только после завершения работы gen.bat.
Вопрос: Как мне запустить файл .bat из c # и передать ему пароль при появлении запроса?
openssl.conf:
#Passwords for private keys if not present they will be prompted for
#input_password = secret
#output_password = secret
Должен ли я откомментировать их и поставить здесь переменную пароля? Если так, есть ли простой способ найти конкретную строку в файле и заменить ее с помощью c #, что-то с File. ? Или мне нужно перезаписать весь файл?
Спасибо