Как использовать не указанный в списке пакет 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. Обновленный код:

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

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.ES512, digest);
var signOperation = await client.StartSignAsync(codeSigningAccountName, certificateProfileName, signRequest); // Fails here, obviously

var response = await signOperation.WaitForCompletionAsync();
Выполнить это не удается:

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

Service request failed.
Status: 200 (OK)

Content:
{"operationId":"...","status":"Failed","signature":null,"signingCertificate":null,"counterSignature":null}
Предполагается, что SDK имеет открытый исходный код, но я не могу найти ни исходный код, ни документацию.
Ссылки :
  • https://www.nuget.org/packages/Azure.CodeSigning.Sdk
  • https:/ /learn.microsoft.com/en-us/azure/trusted-signing/how-to-signing-integrations#use-other-signing-integrations-with-trusted-signing
  • https ://learn.microsoft.com/en-us/azure/trusted-signing/how-to-signing-integrations
Моя доверенная учетная запись для подписи: настроен в Azure, роли назначены, проверка личности пройдена и профиль общедоступного сертификата создан.

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

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