public KeyVaultSigningContextTests() { var creds = TestAzureCredentials.Credentials; if (creds == null) { return; } _configuration = new AzureKeyVaultSignConfigurationSet { FileDigestAlgorithm = Crypto.HashAlgorithmName.SHA256, PkcsDigestAlgorithm = Crypto.HashAlgorithmName.SHA256, AzureClientId = creds.ClientId, AzureClientSecret = creds.ClientSecret, AzureKeyVaultUrl = creds.AzureKeyVaultUrl, AzureKeyVaultCertificateName = creds.AzureKeyVaultCertificateName }; }
private async Task <int> PerformAzureSignOnVsixAsync(string vsixPath, bool force, Uri timestampUri, HashAlgorithmName fileDigestAlgorithm, HashAlgorithmName timestampDigestAlgorithm, string azureUri, string azureClientId, string azureClientCertificateName, string azureClientSecret, string azureAccessToken ) { using (var package = OpcPackage.Open(vsixPath, OpcPackageFileMode.ReadWrite)) { if (package.GetSignatures().Any() && !force) { _signCommandApplication.Out.WriteLine("The VSIX is already signed."); return(EXIT_CODES.FAILED); } var signBuilder = package.CreateSignatureBuilder(); signBuilder.EnqueueNamedPreset <VSIXSignatureBuilderPreset>(); var signingConfiguration = new AzureKeyVaultSignConfigurationSet { FileDigestAlgorithm = fileDigestAlgorithm, PkcsDigestAlgorithm = fileDigestAlgorithm, AzureClientId = azureClientId, AzureClientSecret = azureClientSecret, AzureKeyVaultCertificateName = azureClientCertificateName, AzureKeyVaultUrl = azureUri, AzureAccessToken = azureAccessToken }; var signature = await signBuilder.SignAsync(signingConfiguration); if (timestampUri != null) { var timestampBuilder = signature.CreateTimestampBuilder(); var result = await timestampBuilder.SignAsync(timestampUri, timestampDigestAlgorithm); if (result == TimestampResult.Failed) { return(EXIT_CODES.FAILED); } } _signCommandApplication.Out.WriteLine("The signing operation is complete."); return(EXIT_CODES.SUCCESS); } }