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);
        }
示例#3
0
 public AesHeader(AesVersion version, byte[] iv)
 {
     Version = version;
     IV      = iv;
 }