public void MicrosoftCertificateAuthority_Sign_CngEcdh256_CertificateAuthorityRequestResponse_Issued()
        {
            string templateName = "ServerAuthentication-CngEcdh";

            int                keysize    = 256;
            string             commonName = "domain.com";
            WindowsApi         api        = WindowsApi.Cng;
            CipherAlgorithm    cipher     = CipherAlgorithm.ECDH;
            KeyUsage           keyUsage   = KeyUsage.ServerAuthentication;
            CertificateSubject subject    = new CertificateSubject(commonName);

            Win32CertificateProvider provider = new Win32CertificateProvider();

            CertificateRequest csr = provider.CreateCsrKeyPair(subject, cipher, keysize, api, SigningRequestProtocol.Pkcs10);

            MicrosoftCertificateAuthority ca = new MicrosoftCertificateAuthority(new MicrosoftCertificateAuthorityOptions()
            {
                AuthenticationRealm = domain,
                AuthenticationType  = MicrosoftCertificateAuthorityAuthenticationType.UsernamePassword,
                HashAlgorithm       = HashAlgorithm.SHA256,
                ServerName          = caServerName,
                CommonName          = caCommonName,
                Username            = username,
                Password            = password
            });

            CertificateAuthorityRequestResponse response = ca.Sign(csr, templateName, keyUsage);

            Assert.AreEqual(CertificateRequestStatus.Issued, response.CertificateRequestStatus);
        }
コード例 #2
0
        public void Win32CertificateProvider_CreateCsrKeyPair_CryptoApiEcdh_AlgorithmNotSupportedByProviderException()
        {
            int                keysize    = 2048;
            string             commonName = "domain.com";
            WindowsApi         api        = WindowsApi.CryptoApi;
            CipherAlgorithm    cipher     = CipherAlgorithm.ECDH;
            CertificateSubject subject    = new CertificateSubject(commonName);

            Win32CertificateProvider provider = new Win32CertificateProvider();

            provider.CreateCsrKeyPair(subject, cipher, keysize, api, SigningRequestProtocol.Pkcs10);
        }
コード例 #3
0
        public void Win32CertificateProvider_CreateCsrKeyPair_ManagedPrivateKey_IsTrue()
        {
            int                keysize    = 256;
            string             commonName = "domain.com";
            WindowsApi         api        = WindowsApi.Cng;
            CipherAlgorithm    cipher     = CipherAlgorithm.ECDSA;
            CertificateSubject subject    = new CertificateSubject(commonName);

            Win32CertificateProvider provider = new Win32CertificateProvider();

            CertificateRequest csr = provider.CreateCsrKeyPair(subject, cipher, keysize, api, SigningRequestProtocol.Pkcs10);

            Assert.IsTrue(csr.ManagedPrivateKey);
        }
コード例 #4
0
        public void Win32CertificateProvider_CreateCsrKeyPair_CngEcdh256_EncodedCsr_IsNotNull()
        {
            int                keysize    = 256;
            string             commonName = "domain.com";
            WindowsApi         api        = WindowsApi.Cng;
            CipherAlgorithm    cipher     = CipherAlgorithm.ECDH;
            CertificateSubject subject    = new CertificateSubject(commonName);

            Win32CertificateProvider provider = new Win32CertificateProvider();

            CertificateRequest csr = provider.CreateCsrKeyPair(subject, cipher, keysize, api, SigningRequestProtocol.Pkcs10);

            Assert.IsNotNull(csr.EncodedCsr);
        }