Пример #1
0
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(Name, Resources.CreateAttestation))
            {
                JSONWebKeySet jsonWebKeySet = null;

                if (this.PolicySigningCertificateFile != null)
                {
                    FileInfo certFile = new FileInfo(ResolveUserPath(this.PolicySigningCertificateFile));

                    if (!certFile.Exists)
                    {
                        throw new FileNotFoundException(string.Format(AttestationProperties.Resources.CertificateFileNotFound, this.PolicySigningCertificateFile));
                    }

                    var pem = System.IO.File.ReadAllText(certFile.FullName);

                    X509Certificate2Collection certificateCollection = AttestationClient.GetX509CertificateFromPEM(pem, "CERTIFICATE");

                    if (certificateCollection.Count != 0)
                    {
                        jsonWebKeySet = AttestationClient.GetJSONWebKeySet(certificateCollection);
                    }
                }
                var newAttestation = AttestationClient.CreateNewAttestation(new AttestationCreationParameters()
                {
                    ProviderName              = this.Name,
                    ResourceGroupName         = this.ResourceGroupName,
                    AttestationPolicy         = this.AttestationPolicy,
                    PolicySigningCertificates = jsonWebKeySet
                });
                this.WriteObject(newAttestation);
            }
        }
Пример #2
0
        public static JSONWebKeySet GetJwks(string certificateFileName)
        {
            JSONWebKeySet jwks = null;

            if (certificateFileName != null)
            {
                FileInfo certFile = new FileInfo(certificateFileName);

                if (!certFile.Exists)
                {
                    throw new FileNotFoundException(string.Format(Resources.CertificateFileNotFound, certificateFileName));
                }

                var pem = System.IO.File.ReadAllText(certFile.FullName);

                X509Certificate2Collection certificateCollection = GetX509CertificateFromPEM(pem, "CERTIFICATE");

                if (certificateCollection.Count != 0)
                {
                    jwks = GetJSONWebKeySet(certificateCollection);
                }
            }

            return(jwks);
        }
Пример #3
0
        public void AttestationManagementAttestationCreateDelete()
        {
            using (MockContext context = MockContext.Start(this.GetType()))
            {
                var mode     = Environment.GetEnvironmentVariable("AZURE_TEST_MODE");
                var testBase = new AttestationTestBase(context);
                testBase.apiVersion = testBase.apiVersion;

                byte[]           certBuffer  = Convert.FromBase64String("MIICjzCCAjSgAwIBAgIUImUM1lqdNInzg7SVUr9QGzknBqwwCgYIKoZIzj0EAwIwaDEaMBgGA1UEAwwRSW50ZWwgU0dYIFJvb3QgQ0ExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMRQwEgYDVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExCzAJBgNVBAYTAlVTMB4XDTE4MDUyMTEwNDExMVoXDTMzMDUyMTEwNDExMFowaDEaMBgGA1UEAwwRSW50ZWwgU0dYIFJvb3QgQ0ExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMRQwEgYDVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEC6nEwMDIYZOj/iPWsCzaEKi71OiOSLRFhWGjbnBVJfVnkY4u3IjkDYYL0MxO4mqsyYjlBalTVYxFP2sJBK5zlKOBuzCBuDAfBgNVHSMEGDAWgBQiZQzWWp00ifODtJVSv1AbOScGrDBSBgNVHR8ESzBJMEegRaBDhkFodHRwczovL2NlcnRpZmljYXRlcy50cnVzdGVkc2VydmljZXMuaW50ZWwuY29tL0ludGVsU0dYUm9vdENBLmNybDAdBgNVHQ4EFgQUImUM1lqdNInzg7SVUr9QGzknBqwwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwIDSQAwRgIhAIpQ/KlO1XE4hH8cw5Ol/E0yzs8PToJe9Pclt+bhfLUgAiEAss0qf7FlMmAMet+gbpLD97ldYy/wqjjmwN7yHRVr2AM=");
                X509Certificate2 certificate = new X509Certificate2(certBuffer);
                var jwks = new JSONWebKeySet();
                var jwk  = new JSONWebKey()
                {
                    Kty = "RSA"
                };
                jwk.X5c = new List <string>()
                {
                    System.Convert.ToBase64String(certificate.Export(X509ContentType.Cert))
                };
                jwks.Keys = new List <JSONWebKey>()
                {
                    jwk
                };

                var instanceParams = new AttestationServiceCreationParams {
                    PolicySigningCertificates = jwks
                };
                try
                {
                    var createdAttestation = testBase.client.AttestationProviders.Create(
                        resourceGroupName: testBase.rgName,
                        providerName: testBase.attestationName,
                        creationParams: instanceParams
                        );
                    ValidateAttestationProvider(createdAttestation,
                                                testBase.attestationName,
                                                testBase.rgName,
                                                testBase.subscriptionId);

                    testBase.client.AttestationProviders.Get(
                        resourceGroupName: testBase.rgName,
                        providerName: testBase.attestationName);
                }
                finally
                {
                    testBase.client.AttestationProviders.Delete(
                        resourceGroupName: testBase.rgName,
                        providerName: testBase.attestationName);
                }
            }
        }
Пример #4
0
        public JSONWebKeySet GetJSONWebKeySet(X509Certificate2Collection certificateCollection)
        {
            var jwks = new JSONWebKeySet();

            jwks.Keys = new List <JSONWebKey>();
            foreach (var certificate in certificateCollection)
            {
                var jwk = new JSONWebKey()
                {
                    Kty = "RSA"
                };
                jwk.X5c = new List <string>()
                {
                    System.Convert.ToBase64String(certificate.Export(X509ContentType.Cert))
                };
                jwks.Keys.Add(jwk);
            }
            return(jwks);
        }