public static byte[] ExportSubjectPublicKeyInfo(this ECDsa ecdsa, AsnFormat format)
 {
     return(format switch
     {
         AsnFormat.Der => ecdsa.ExportSubjectPublicKeyInfo(),
         AsnFormat.Pem => PemFormater.ToPemBytes(ecdsa.ExportSubjectPublicKeyInfo(), "PUBLIC KEY"),
         _ => ThrowHelpers.NotImplemented <byte[]>(nameof(ECDsaExtensions))
     });
 public static byte[] ExportSubjectPublicKeyInfo(this ECDsa rsa, AsnFormat format)
 {
     return(format switch
     {
         AsnFormat.Der => rsa.ExportSubjectPublicKeyInfo(),
         AsnFormat.Pem => PemFormater.ToPemBytes(rsa.ExportSubjectPublicKeyInfo(), "PUBLIC KEY"),
         _ => throw new NotImplementedException()
     });
Exemple #3
0
        public void GetEncoded(AsnFormat format)
        {
            X509Certificate2 certificate = CertificateGenerator.Create("X509Certificate2ExtensionsTests");

            byte[] encoded = certificate.GetEncoded(format);

            X509Certificate2 result = new X509Certificate2(encoded);

            Assert.IsNotNull(result);
        }
Exemple #4
0
        private void CheckFormat(AsnFormat format, byte[] data)
        {
            byte[] pemStart = Encoding.ASCII.GetBytes("-----BEGIN ");
            if (format == AsnFormat.Der)
            {
                if (this.StatWith(data, pemStart))
                {
                    Assert.Fail("Excepted data format is {0} but is not match to {1}", format, Convert.ToBase64String(data));
                }
            }

            if (format == AsnFormat.Pem)
            {
                if (!this.StatWith(data, pemStart))
                {
                    Assert.Fail("Excepted data format is {0} but is not match to {1}", format, Convert.ToBase64String(data));
                }
            }
        }
Exemple #5
0
        public void ExportRSAPrivateKey(AsnFormat format)
        {
            using RSA rsa = RSA.Create(2048);
            byte[] exported = rsa.ExportRSAPrivateKey(format);

            if (format == AsnFormat.Der)
            {
                AsymmetricKeyParameter info = PrivateKeyFactory.CreateKey(new PrivateKeyInfo(new AlgorithmIdentifier("1.2.840.113549.1.1.1"), Asn1Object.FromByteArray(exported)));
                Assert.IsNotNull(info);
            }

            if (format == AsnFormat.Pem)
            {
                using MemoryStream ms = new MemoryStream(exported);
                using TextReader tr   = new StreamReader(ms, Encoding.ASCII);
                PemReader pemReader = new PemReader(tr);
                object    obj       = pemReader.ReadObject();
                Assert.IsNotNull(obj);
            }

            this.CheckFormat(format, exported);
        }
Exemple #6
0
        public void ExportPkcs8PrivateKey(AsnFormat format)
        {
            using RSA rsa = RSA.Create(2048);
            byte[] exported = rsa.ExportPkcs8PrivateKey(format);

            if (format == AsnFormat.Der)
            {
                var info = PrivateKeyFactory.CreateKey(exported);
                Assert.IsNotNull(info);
            }

            if (format == AsnFormat.Pem)
            {
                using MemoryStream ms = new MemoryStream(exported);
                using TextReader tr   = new StreamReader(ms, Encoding.ASCII);
                PemReader pemReader = new PemReader(tr);
                object    obj       = pemReader.ReadObject();
                Assert.IsNotNull(obj);
            }

            this.CheckFormat(format, exported);
        }
        public void ExportRSAPrivateKey(AsnFormat format)
        {
            using ECDsa ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256);
            byte[] exported = ecdsa.ExportECPrivateKey(format);

            if (format == AsnFormat.Der)
            {
                using ECDsa ecdsaImport = ECDsa.Create();
                ecdsaImport.ImportECPrivateKey(exported, out _);
            }

            if (format == AsnFormat.Pem)
            {
                using MemoryStream ms = new MemoryStream(exported);
                using TextReader tr   = new StreamReader(ms, Encoding.ASCII);
                PemReader pemReader = new PemReader(tr);
                object    obj       = pemReader.ReadObject();
                Assert.IsNotNull(obj);
            }

            this.CheckFormat(format, exported);
        }
Exemple #8
0
        public void ExportSubjectPublicKeyInfo(AsnFormat format)
        {
            using RSA rsa = RSA.Create(2048);
            byte[] exported = rsa.ExportSubjectPublicKeyInfo(format);

            if (format == AsnFormat.Der)
            {
                SubjectPublicKeyInfo info = SubjectPublicKeyInfo.GetInstance(Asn1Object.FromByteArray(exported));
                Assert.IsNotNull(info);
                Assert.IsNotNull(info.AlgorithmID);
                Assert.IsNotNull(info.PublicKeyData);
            }

            if (format == AsnFormat.Pem)
            {
                using MemoryStream ms = new MemoryStream(exported);
                using TextReader tr   = new StreamReader(ms, Encoding.ASCII);
                PemReader pemReader = new PemReader(tr);
                object    obj       = pemReader.ReadObject();
                Assert.IsNotNull(obj);
            }

            this.CheckFormat(format, exported);
        }