public void PublicKeyOnlyCorrectlyParses() { var cert = RSACertificateBuilder.CreateNewCertificate("Test"); var data = cert.Export(X509ContentType.Cert); var publicCert = new X509Certificate2(data); var cng = RSACertificateParser.ParsePublicCertificate(publicCert); Assert.IsNotNull(cng); }
public void NoPublicKeyThrowsError() { Assert.Throws(typeof(InvalidOperationException), () => { var cert = RSACertificateBuilder.CreateNewCertificate("Test"); var data = cert.Export(X509ContentType.Cert); var publicCert = new X509Certificate2(data); RSACertificateParser.ParsePrivateCertificate(publicCert); }); }
public void KeySize2048CertificateCorrectlyParses() { var options = new RSACertificateBuilderOptions { FullSubjectName = "CN=Test", KeySize = 2048 }; var cert = RSACertificateBuilder.CreateNewCertificate(options); var cng = RSACertificateParser.ParsePublicCertificate(cert); Assert.IsNotNull(cng); }
/// <summary> /// Create an AES encryptor from an encrypted AES key, you can use the encryptor to create /// </summary> /// <param name="blob">AES data created from the <see cref="CreateBlob(AESKeySize, X509Certificate2)"/> or <see cref="CreateBlob(AESKeySize, RSAServiceProvider)"/> method</param> /// <param name="rsaPrivateCert">RSA certificate to decrypt data, must have a private key</param> /// <returns>Encryptor that can be used to encrypt/decrypt any number of documents</returns> public static AESEncryptor CreateEncryptor(byte[] blob, X509Certificate2 rsaPrivateCert) { var cert = RSACertificateParser.ParsePrivateCertificate(rsaPrivateCert); return(CreateEncryptor(blob, cert)); }
/// <summary> /// Create an AES key that is encrypted using a RSA certificate /// </summary> /// <param name="keySize">Required AES key size</param> /// <param name="rsaPublicCert">RSA public certificate used to sign</param> /// <returns>data that can be stored</returns> public static byte[] CreateBlob(AESKeySize keySize, X509Certificate2 rsaPublicCert) { var cert = RSACertificateParser.ParsePublicCertificate(rsaPublicCert); return(CreateBlob(keySize, cert)); }