Как использовать не указанный в списке пакет NuGet Azure.CodeSigning.Sdk для подписи файлов PowerShell?C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать не указанный в списке пакет NuGet Azure.CodeSigning.Sdk для подписи файлов PowerShell?

Сообщение Anonymous »

Мы генерируем сценарии PowerShell динамически, поскольку они адаптированы для конкретного клиента. Однако клиенты начинают требовать подписи этих файлов.
Поскольку они генерируются «на лету», решение на основе CI не подходит.
Я изучаю, как сделать это с помощью кода, поскольку я собираюсь использовать функцию Azure для подписи этих файлов, но не могу понять, как использовать SDK, как указано в разделе Использование других интеграций подписи с доверенной подписью.
Изменить 1: Signtool.exe предназначен только для Windows, а Jsign еще не поддерживает доверенную подпись. Думаю, я мог бы использовать Signtool.exe или Jsign, но они должны быть предварительно установлены, и я не знаю, как это сделать для функции Azure.
Изменить 2: ES512 — это алгоритм подписи, который принимает дайджест/хеш SHA512.
Изменить 3: я обнаружил, что RS512 работает, а моя предыдущая попытка с ES512 - нет.
Обновленный код:

Код: Выделить всё

var endpoint = new Uri("https://weu.codesigning.azure.net/");
const string codeSigningAccountName = "...";
const string certificateProfileName = "...";

var client = new CertificateProfileClient(new InteractiveBrowserCredential(), endpoint);

await using var stream = File.OpenRead("...");
var digest = await SHA512.HashDataAsync(stream);

var signRequest = new SignRequest(SignatureAlgorithm.RS512, digest);
var signOperation = await client.StartSignAsync(codeSigningAccountName, certificateProfileName, signRequest); // Fails here, obviously

var response = await signOperation.WaitForCompletionAsync();
Ответ содержит подпись и сертификат подписи, оба массива байтов.
Как я могу использовать их для подписи PowerShell в код на устройстве, отличном от Windows?

Предполагается, что SDK имеет открытый исходный код, но я не могу найти ни исходный код, ни документацию.
Ссылки: Моя доверенная учетная запись для подписи настроена в Azure, роли назначены, проверка личности пройдена, и создан профиль общедоступного сертификата.>

Подробнее здесь: https://stackoverflow.com/questions/791 ... -powershel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»