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() });
public void GetEncoded(AsnFormat format) { X509Certificate2 certificate = CertificateGenerator.Create("X509Certificate2ExtensionsTests"); byte[] encoded = certificate.GetEncoded(format); X509Certificate2 result = new X509Certificate2(encoded); Assert.IsNotNull(result); }
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)); } } }
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); }
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); }
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); }