private static byte[] PRF(TlsKdfWithPrfParameters parameters, int size) { byte[] label = Strings.ToByteArray(parameters.Label); byte[] labelSeed = Arrays.Concatenate(label, parameters.SeedMaterial); IMac prfMac = FipsShs.CreateHmac(parameters.Prf); byte[] buf = new byte[size]; hmac_hash(prfMac, parameters.Secret, labelSeed, buf); return(buf); }
public IKdfCalculator <TlsKdfWithPrfParameters> From(byte[] secret, string label, params byte[][] seedMaterial) { TlsKdfWithPrfParameters parameters = new TlsKdfWithPrfParameters(algorithm, prf, Arrays.Clone(secret), label, concatenate(seedMaterial)); return(new Tls12KdfFactory(parameters)); }