internal Pbes2KeyUnwrapper(PasswordBasedJwk key, EncryptionAlgorithm encryptionAlgorithm, KeyManagementAlgorithm algorithm) : base(encryptionAlgorithm, algorithm) { Debug.Assert(key.SupportKeyManagement(algorithm)); Debug.Assert(algorithm.Category == AlgorithmCategory.Pbkdf2); Debug.Assert(algorithm.WrappedAlgorithm != null); Debug.Assert(algorithm.HashAlgorithm != null); _algorithm = algorithm.Name; _keySizeInBytes = algorithm.WrappedAlgorithm.RequiredKeySizeInBits >> 3; _algorithmNameLength = _algorithm.EncodedUtf8Bytes.Length; _hashAlgorithm = algorithm.HashAlgorithm; _keyManagementAlgorithm = algorithm.WrappedAlgorithm; _password = key.ToArray(); }
public Pbes2KeyWrapper(PasswordBasedJwk key, EncryptionAlgorithm encryptionAlgorithm, KeyManagementAlgorithm algorithm, uint iterationCount, uint saltSizeInBytes, ISaltGenerator saltGenerator) : base(encryptionAlgorithm, algorithm) { Debug.Assert(key.SupportKeyManagement(algorithm)); Debug.Assert(algorithm.Category == AlgorithmCategory.Pbkdf2); Debug.Assert(algorithm.WrappedAlgorithm != null); Debug.Assert(algorithm.HashAlgorithm != null); _algorithm = algorithm.Name; _keySizeInBytes = algorithm.WrappedAlgorithm.RequiredKeySizeInBits >> 3; _algorithmNameLength = _algorithm.EncodedUtf8Bytes.Length; _hashAlgorithm = algorithm.HashAlgorithm; _keyManagementAlgorithm = algorithm.WrappedAlgorithm; _password = key.ToArray(); _iterationCount = iterationCount; _saltSizeInBytes = (int)saltSizeInBytes; _saltGenerator = saltGenerator; }