public KdfResult Kdf(KdfParameterTls10_11 param, BitString fixedInfo = null) { var result = _kdfVisitor.Kdf(param, fixedInfo); var dkmBytesLen = result.DerivedKey.BitLength.CeilingDivide(BitString.BITSINBYTE); // Modify a random byte within DKM result.DerivedKey[_random.GetRandomInt(0, dkmBytesLen)] += 2; return(result); }
public KdfResult Kdf(KdfParameterTls10_11 param, BitString fixedInfo = null) { var zBytesLen = param.Z.BitLength.CeilingDivide(BitString.BITSINBYTE); var modifiedParam = new KdfParameterTls10_11() { L = param.L, Z = param.Z.GetDeepCopy() }; // Modify a random byte within Z modifiedParam.Z[_random.GetRandomInt(0, zBytesLen)] += 2; return(_kdfVisitor.Kdf(modifiedParam, fixedInfo)); }
public KdfResult Kdf(KdfParameterTls10_11 param, BitString fixedInfo = null) { var hashFunction = ShaAttributes.GetHashFunctionFromEnum(param.HashFunction); var kdf = _tlsFactory.GetTlsKdfInstance(TlsModes.v10v11, hashFunction); var result = kdf.DeriveKey( param.Z, param.InitiatorEphemeralData, param.ResponderEphemeralData, param.AdditionalInitiatorNonce, param.AdditionalResponderNonce, param.L); return(new KdfResult(result.DerivedKey)); }