internal byte[] ComputeKey(byte[] salt, AesVersion version) { if (salt == null) { throw new ArgumentNullException(nameof(salt)); } using var deriveBytes = new Rfc2898DeriveBytes(Password, salt, IterationCount); int length = version == AesVersion.Aes128 ? 16 : 32; return(deriveBytes.GetBytes(length)); }
protected virtual System.Security.Cryptography.Aes CreateAes(AesVersion version) { System.Security.Cryptography.Aes aes = System.Security.Cryptography.Aes.Create(); switch (version) { case AesVersion.Aes128: aes.KeySize = 128; break; case AesVersion.Aes256: aes.KeySize = 256; break; default: throw new ArgumentOutOfRangeException(); } return(aes); }
public AesHeader(AesVersion version, byte[] iv) { Version = version; IV = iv; }