public void KeysAreOfDifferentType()
 {
     var rsaKeyProvider = new RsaKeyProvider(asymmetricKeyPairGenerator);
     var rsaKeyPair = rsaKeyProvider.CreateKeyPair(1024);
     
     Assert.IsFalse(keyProvider.VerifyKeyPair(new AsymmetricKeyPair(rsaKeyPair.PrivateKey, keyPair.PublicKey)));
 }
Exemple #2
0
        public void SetupAsymmetricKeyProviderTest()
        {
            var configuration = Mock.Of <IConfiguration>(c => c.Get <int>("SaltLengthInBytes") == 100 &&
                                                         c.Get <int>("KeyDerivationIterationCount") == 10);
            var secureRandom = new SecureRandomGenerator();
            var asymmetricKeyPairGenerator = new AsymmetricKeyPairGenerator(secureRandom);
            var primeMapper = new Rfc3526PrimeMapper();
            var fieldMapper = new FieldToCurveNameMapper();

            rsaKeyProvider     = new RsaKeyProvider(asymmetricKeyPairGenerator);
            dsaKeyProvider     = new DsaKeyProvider(asymmetricKeyPairGenerator);
            ecKeyProvider      = new EcKeyProvider(asymmetricKeyPairGenerator, fieldMapper);
            elGamalKeyProvider = new ElGamalKeyProvider(asymmetricKeyPairGenerator, primeMapper);

            cipherTypeMapper = new OidToCipherTypeMapper();
            keyInfoWrapper   = new Mock <KeyInfoWrapper>();

            SetupValidKeyInfo();
            SetupValidKeyProvider();

            pkcsEncryptionProvider = new KeyEncryptionProvider(configuration, secureRandom, keyProvider, new Pkcs12KeyEncryptionGenerator(), new AesKeyEncryptionGenerator());

            rsaKeyPair = rsaKeyProvider.CreateKeyPair(2048);
            dsaKeyPair = dsaKeyProvider.CreateKeyPair(2048);
            ecKeyPair  = ecKeyProvider.CreateKeyPair("secp384r1");

            elGamalKeyPair = elGamalKeyProvider.CreateKeyPair(2048, true);
        }
Exemple #3
0
            public void SetupEncryptKey()
            {
                var secureRandomGenerator = new SecureRandomGenerator();
                var rsaProvider           = new RsaKeyProvider(new AsymmetricKeyPairGenerator(secureRandomGenerator));

                keyPair = rsaProvider.CreateKeyPair(1024);

                secureRandom.Setup(sr => sr.NextBytes(100))
                .Returns(new byte[] { 0x07 });
            }
Exemple #4
0
        protected void SetupWithRsaKey()
        {
            keyPair = rsaKeyProvider.CreateKeyPair(2048);
            var privateRsaKey = keyPair.PrivateKey;

            privateKey = pkcs8PemFormatter.GetAsPem(privateRsaKey);

            file.Setup(f => f.ReadAllBytes("private.pem"))
            .Returns(encoding.GetBytes(privateKey));
        }
        public void Setup()
        {
            generator = new AesKeyEncryptionGenerator();

            var secureRandom = new SecureRandomGenerator();
            var rsaProvider  = new RsaKeyProvider(new AsymmetricKeyPairGenerator(secureRandom));

            keyPair = rsaProvider.CreateKeyPair(1024);

            encryptedKey = generator.Encrypt("keypassword", new byte[] { 0x01, 0x02 }, 100, keyPair.PrivateKey.Content);
        }
Exemple #6
0
            public void SetupDecrypt()
            {
                var secureRandomGenerator = new SecureRandomGenerator();
                var rsaProvider           = new RsaKeyProvider(new AsymmetricKeyPairGenerator(secureRandomGenerator));

                keyPair = rsaProvider.CreateKeyPair(1024);

                var oidToCipherTypeMapper = new OidToCipherTypeMapper();

                encryptionProvider = new KeyEncryptionProvider(configuration, secureRandomGenerator, new AsymmetricKeyProvider(oidToCipherTypeMapper, new KeyInfoWrapper(), rsaProvider, null, null, null), new Pkcs12KeyEncryptionGenerator(), new AesKeyEncryptionGenerator());
            }
Exemple #7
0
        public void SetupPkcsEncryptionGeneratorTest()
        {
            encryptionGenerator = new Pkcs12KeyEncryptionGenerator();

            var secureRandom = new SecureRandomGenerator();
            var rsaProvider  = new RsaKeyProvider(new AsymmetricKeyPairGenerator(secureRandom));

            keyPair = rsaProvider.CreateKeyPair(1024);

            encryptedKey = encryptionGenerator.Encrypt("fooBar", new byte[] { 0x01, 0x02 }, 10, keyPair.PrivateKey.Content);
        }
Exemple #8
0
        public void SetupSignatureProviderTest()
        {
            algorithmIdentifierMapper = new SignatureAlgorithmIdentifierMapper();
            secureRandomGenerator     = new SecureRandomGenerator();
            signatureProvider         = new SignatureProvider(algorithmIdentifierMapper, secureRandomGenerator, new SignerUtilitiesWrapper());

            content = secureRandomGenerator.NextBytes(2000);

            keys = new Dictionary <CipherType, IAsymmetricKeyPair>();

            var rsaGenerator   = new AsymmetricKeyPairGenerator(secureRandomGenerator);
            var rsaKeyProvider = new RsaKeyProvider(rsaGenerator);

            IAsymmetricKeyPair keyPair = rsaKeyProvider.CreateKeyPair(2048);

            keys.Add(keyPair.PrivateKey.CipherType, keyPair);
        }
            public void Setup()
            {
                var rsaKeyProvider         = new RsaKeyProvider(keyPairGenerator);
                IAsymmetricKeyPair keyPair = rsaKeyProvider.CreateKeyPair(2048);

                key = keyPair.PublicKey;

                string keyContent = provider.GetRsaPublicKeyContent(key);

                result = base64.FromBase64String(keyContent);

                using (var stream = new MemoryStream(result))
                {
                    rawHeader   = ReadNextContent(stream);
                    rawExponent = ReadNextContent(stream);
                    rawModulus  = ReadNextContent(stream);
                }
            }
            public void SetupGetAsDer()
            {
                var secureRandom = new SecureRandomGenerator();
                var asymmetricKeyPairGenerator = new AsymmetricKeyPairGenerator(secureRandom);
                var rsaKeyProvider             = new RsaKeyProvider(asymmetricKeyPairGenerator);
                var dsaKeyProvider             = new DsaKeyProvider(asymmetricKeyPairGenerator);
                var ecKeyProvier = new EcKeyProvider(asymmetricKeyPairGenerator, new FieldToCurveNameMapper());
                var keyPair      = rsaKeyProvider.CreateKeyPair(1024);
                var key          = keyPair.PublicKey;

                var encoding       = new EncodingWrapper();
                var base64         = new Base64Wrapper();
                var sshKeyProvider = new SshKeyProvider(encoding, base64, rsaKeyProvider, dsaKeyProvider, ecKeyProvier, null);

                var formattingProvider = new SshFormattingProvider(sshKeyProvider, encoding, new Ssh2ContentFormatter(), null, base64);

                ssh2Key    = formattingProvider.GetAsSsh2PublicKey(key, "foo");
                keyContent = sshKeyProvider.GetRsaPublicKeyContent(key);
                openSshKey = formattingProvider.GetAsOpenSshPublicKey(key, "foo");
            }
        public void SetupFormattingProviderTest()
        {
            var secureRandom = new SecureRandomGenerator();

            rsaKeyProvider = new RsaKeyProvider(new AsymmetricKeyPairGenerator(secureRandom));
            keyPair        = rsaKeyProvider.CreateKeyPair(2048);

            var oidMapper = new OidToCipherTypeMapper();
            var asymmetricKeyConverter = new AsymmetricKeyProvider(oidMapper, new KeyInfoWrapper(), rsaKeyProvider, null, null, null);

            pkcs8PemFormattingProvider = new Pkcs8PemFormattingProvider(asymmetricKeyConverter);

            var configuration = Mock.Of <IConfiguration>(m => m.Get <int>("SaltLengthInBytes") == 100 &&
                                                         m.Get <int>("KeyDerivationIterationCount") == 1);

            var encryptionProvider = new KeyEncryptionProvider(configuration, secureRandom, asymmetricKeyConverter, new Pkcs12KeyEncryptionGenerator(), new AesKeyEncryptionGenerator());

            pkcsEncryptedKey = encryptionProvider.EncryptPrivateKey(keyPair.PrivateKey, "password", EncryptionType.Pkcs);
            aesEncryptedKey  = encryptionProvider.EncryptPrivateKey(keyPair.PrivateKey, "password", EncryptionType.Aes);
        }