Подписание Openssl с помощью пакетного файла, созданного в VB.Net - PullRequest
0 голосов
/ 11 декабря 2018

Я схожу с ума, пытаясь создать командный файл, который подписывает ZIP-файл.

Я начинаю с этой командной строки Openssl:

openssl smime -sign –in <original_file_path> –outform der –binary –nodetach -out <signed_file_path> -signer <file_PEM_path> -passin pass:<file_PEM_password>

Затем я реализовал вVB.Net .BAT создание файла:

Private Sub Firma_File(ByVal openssl_path As String, ByVal myFile_path As String, ByVal signedFile_path As String, ByVal key_path As String, ByVal myPassword As String, ByVal myBatch_path As String)
    Dim sb As New StringBuilder
    sb.AppendLine("@echo off")
    sb.AppendLine("cls")
    sb.AppendLine("set var_openssl=" & openssl_path & "")
    sb.AppendLine("set var_myFile=" & myFile_path & "")
    sb.AppendLine("set var_signedFile=" & signedFile_path & "")
    sb.AppendLine("set var_Key=" & key_path & "")
    sb.AppendLine("set var_password=" & myPassword & "")
    sb.AppendLine("cd %var_openssl%")
    sb.AppendLine("openssl smime -sign –in %var_myFile% –outform der –binary –nodetach -out %var_signedFile% -signer file %var_Key% -pass pass:%var_password%")

    File.WriteAllText(myBatch_path, sb.ToString())

    Dim psi As New ProcessStartInfo(myBatch_path)
    psi.RedirectStandardError = True
    psi.RedirectStandardOutput = True
    psi.CreateNoWindow = False
    psi.WindowStyle = ProcessWindowStyle.Hidden
    psi.UseShellExecute = False

    Dim process As Process = Process.Start(psi)
End Sub

В результате .bat файл содержит (скопированный из Notepad ++):

@echo off
cls
set var_openssl=C:\DATA\OpenSSL\bin
set var_myFile=C:\Users\AlessandroT-gvs\Desktop\File origine\FI.12345678901.2018345.0947.001.zip
set var_signedFile=C:\Users\AlessandroT-gvs\Desktop\File origine\FI.12345678901.2018345.0947.001.zip.p7m
set var_Key=C:\CERTS\FIRMA.PEM
set var_password=gvs2018!
cd %var_openssl%
openssl smime -sign –in %var_myFile% –outform der –binary –nodetach -out %var_signedFile% -signer file %var_Key% -pass pass:%var_password%

И, наконец, запустив файл .bat ответ:

No signer certificate specified

Если я попытаюсь скопировать ту же строку команды в Openssl, это сработает.Что я делаю не так?Алреди использовал двойные кавычки на путях, но безуспешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...