Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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);
                });
            }
Exemplo n.º 3
0
            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);
            }
Exemplo n.º 4
0
        /// <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));
        }
Exemplo n.º 5
0
        /// <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));
        }