Пример #1
0
        public void SetupPkcsEncryptionProviderTest()
        {
            configuration = Mock.Of <IConfiguration>(c => c.Get <int>("SaltLengthInBytes") == 100 &&
                                                     c.Get <int>("KeyDerivationIterationCount") == 10);

            secureRandom            = new Mock <SecureRandomGenerator>();
            rsaKeyProvider          = new Mock <IKeyProvider <RsaKey> >();
            asymmetricKeyProvider   = new AsymmetricKeyProvider(new OidToCipherTypeMapper(), new KeyInfoWrapper(), rsaKeyProvider.Object, null, null, null);
            pkcsEncryptionGenerator = new Mock <Pkcs12KeyEncryptionGenerator>();
            pkcsEncryptionGenerator.Setup(e => e.Encrypt(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <byte[]>()))
            .Returns <string, byte[], int, byte[]>((password, salt, iterationCount, content) =>
            {
                var generator = new Pkcs12KeyEncryptionGenerator();
                return(generator.Encrypt(password, salt, iterationCount, content));
            });

            aesEncryptionGenerator = new Mock <AesKeyEncryptionGenerator>();
            aesEncryptionGenerator.Setup(e => e.Encrypt(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <byte[]>()))
            .Returns <string, byte[], int, byte[]>((password, salt, iterationCount, content) =>
            {
                var generator = new AesKeyEncryptionGenerator();
                return(generator.Encrypt(password, salt, iterationCount, content));
            });

            encryptionProvider = new KeyEncryptionProvider(configuration, secureRandom.Object, asymmetricKeyProvider, pkcsEncryptionGenerator.Object, aesEncryptionGenerator.Object);
        }
Пример #2
0
 public KeyEncryptionProvider(IConfiguration configuration, SecureRandomGenerator secureRandomGenerator, IAsymmetricKeyProvider keyProvider, Pkcs12KeyEncryptionGenerator pkcsEncryptionGenerator, AesKeyEncryptionGenerator aesEncryptionGenerator)
 {
     this.configuration           = configuration;
     this.secureRandomGenerator   = secureRandomGenerator;
     this.keyProvider             = keyProvider;
     this.pkcsEncryptionGenerator = pkcsEncryptionGenerator;
     this.aesEncryptionGenerator  = aesEncryptionGenerator;
 }
        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);
        }