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); }
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); }