Поскольку они генерируются «на лету», решение на основе 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}
Ссылки :
- 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
Подробнее здесь: https://stackoverflow.com/questions/791 ... -powershel