public ShadowosocksAeadCipher(string password, ValueTuple <int, int> key_salt_size, NonceLength nonceLength = NonceLength.LEN_12, ILogger logger = null) : base(password) { _keySize_SaltSize = key_salt_size; _nonceLength = nonceLength; _nonceZero = new byte[(int)_nonceLength]; _logger = logger; _masterKeyBytes = MasterKeyGenerator.PasswordToKey(password, _keySize_SaltSize.Item1); _logger?.LogInformation($"ShadowosocksAeadCipher ctor " + $"_keySize_SaltSize={_keySize_SaltSize.Item1},{_keySize_SaltSize.Item2}"); _tcpCtx加密 = new TcpCipherContext(_keySize_SaltSize.Item1, _keySize_SaltSize.Item2, (int)_nonceLength); _tcpCtx解密 = new TcpCipherContext(_keySize_SaltSize.Item1, _keySize_SaltSize.Item2, (int)_nonceLength); }
public ShadowosocksAeadCipher(string password, ValueTuple <int, int> key_salt_size, ILogger logger = null) : base(password) { _keySize_SaltSize = key_salt_size; _logger = logger; _hkdf = new HkdfBytesGenerator(new Sha1Digest()); _masterKeyBytes = MasterKeyGenerator.PasswordToKey(password, _keySize_SaltSize.Item1); _logger?.LogInformation($"ShadowosocksAeadCipher ctor " + $"_keySize_SaltSize={_keySize_SaltSize.Item1},{_keySize_SaltSize.Item2}"); _tcpCtx加密 = new TcpCipherContext(_keySize_SaltSize.Item1, _keySize_SaltSize.Item2); _tcpCtx解密 = new TcpCipherContext(_keySize_SaltSize.Item1, _keySize_SaltSize.Item2); _tcp_decrypt_crumb = SmartBuffer.Rent(LEN_TCP_OVERHEAD_PER_CHUNK * 2); }