Ejemplo n.º 1
0
 public byte[] Generate()
 {
     try
     {
         var distinguishedName = new X500DistinguishedName($"CN={CertifcateName}");
         using RSA rsa = RSA.Create(4096);
         var request = new CertificateRequest(distinguishedName, rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
         request.CertificateExtensions.Add(new X509KeyUsageExtension(X509KeyUsageFlags.DataEncipherment |
                                                                     X509KeyUsageFlags.KeyEncipherment | X509KeyUsageFlags.DigitalSignature, false));
         request.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(new OidCollection {
             new Oid("1.3.6.1.5.5.7.3.1")
         }, false));
         request.CertificateExtensions.Add(SubjectAlternativeNames.Build());
         var certificate = request.CreateSelfSigned(new DateTimeOffset(DateTime.UtcNow.AddDays(-1)), new DateTimeOffset(DateTime.UtcNow.AddDays(3650)));
         certificate.FriendlyName = CertifcateName;
         return(certificate.Export(X509ContentType.Pfx, Password));
     }
     catch (Exception ex)
     {
         throw new Exception("The certificate could not build.", ex);
     }
 }
Ejemplo n.º 2
0
        public CertificatePolicy ToCertificatePolicy()
        {
            var subjectAlternativeNames = new SubjectAlternativeNames();

            foreach (var dnsName in DnsNames)
            {
                subjectAlternativeNames.DnsNames.Add(dnsName);
            }

            var certificatePolicy = new CertificatePolicy(WellKnownIssuerNames.Unknown, subjectAlternativeNames)
            {
                KeyType  = KeyType,
                KeySize  = KeySize,
                ReuseKey = ReuseKey
            };

            if (!string.IsNullOrEmpty(KeyCurveName))
            {
                certificatePolicy.KeyCurveName = KeyCurveName;
            }

            return(certificatePolicy);
        }
 private static void AssertAreEqual(SubjectAlternativeNames expected, SubjectAlternativeNames actual)
 {
     CollectionAssert.AreEqual(expected?.DnsNames, actual?.DnsNames, StringComparer.Ordinal);
     CollectionAssert.AreEqual(expected?.Emails, actual?.Emails, StringComparer.Ordinal);
     CollectionAssert.AreEqual(expected?.UserPrincipalNames, actual?.UserPrincipalNames, StringComparer.Ordinal);
 }
        public void NewIsEmpty()
        {
            SubjectAlternativeNames subjectAlternativeNames = new SubjectAlternativeNames();

            Assert.IsTrue(subjectAlternativeNames.IsEmpty);
        }
 public CACertificatePolicy(string issuerName, string subject, SubjectAlternativeNames subjectAlternativeNames) : base(issuerName, subject, subjectAlternativeNames)
 {
 }