private ICipherParameters GetParameters(ConnectionDirection direction) { var end = _endConfig.End; var cipherParameterFactory = _cipherSuitesProvider.ResolveCipherParameterFactory(_cipherSuiteConfig.CipherSuite); return(cipherParameterFactory.Create(end, direction)); }
private ICipherParameters GetParameters(ConnectionDirection direction, byte[] aad, byte[] nonceExplicit) { var end = _endConfig.End; var cipherParameterFactory = _cipherSuitesProvider.ResolveCipherParameterFactory(_cipherSuiteConfig.CipherSuite); var innerParameters = cipherParameterFactory.Create(end, direction); var nonceImplicit = GetImplicitNonce(direction); SecurityAssert.NotNull(nonceImplicit); SecurityAssert.Assert(nonceImplicit.Length > 0); var nonce = new byte[nonceImplicit.Length + nonceExplicit.Length]; Array.Copy(nonceImplicit, 0, nonce, 0, nonceImplicit.Length); Array.Copy(nonceExplicit, 0, nonce, nonceImplicit.Length, nonceExplicit.Length); return(new AADParameter(new IVParameter(innerParameters, nonce), aad)); }