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
            };
        }
Ejemplo n.º 2
0
        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);
            }
        }