public static CryptoMeta CreateCrypto(string masterKey) { var decodedKey = Convert.FromBase64String(masterKey); var fileKey = CreateSecureRandom(decodedKey.Length); var ivKey = CreateSecureRandom(decodedKey.Length); if (_internalCryptoManager.KeySize != fileKey.Length) { _internalCryptoManager = C.GetOrCreate(fileKey.Length); } return(new CryptoMeta { Key = Convert.ToBase64String(_internalCryptoManager.EncryptKey(decodedKey, fileKey)), Iv = Convert.ToBase64String(ivKey), KeySize = decodedKey.Length * 8, Transform = _internalCryptoManager.CreateEncryptor(fileKey, ivKey) }); }
private static InternalCryptoManager Add(InternalCryptoManager internalCryptoManager) { Cryptos.Add(internalCryptoManager); return(internalCryptoManager); }