public AgreementKdfBuilder WithPrf(FipsPrfAlgorithm prf) { return(new AgreementKdfBuilder(algorithm, prf, iv)); }
/// <summary> /// Construct a KDF using the given PRF to process the agreed value with. The outputSize parameter determines how many bytes /// will be generated. /// </summary> /// <param name="kdfBuilder">KDF algorithm builder to use for parameter creation.</param> /// <param name="prf">The PRF to use in the KDF.</param> /// <param name="iv">The iv parameter for KDF initialization.</param> /// <param name="outputSize">The size of the output to be generated from the KDF.</param> public FipsKdfKmg(FipsKdf.AgreementKdfBuilderService kdfBuilder, FipsPrfAlgorithm prf, byte[] iv, int outputSize) { this.kdfBuilder = CryptoServicesRegistrar.CreateService(kdfBuilder).WithPrf(prf); this.iv = Arrays.Clone(iv); this.outputSize = outputSize; }
internal AgreementKdfBuilder(FipsAlgorithm algorithm, FipsPrfAlgorithm prf, byte[] iv) { this.algorithm = algorithm; this.prf = prf; this.iv = iv; }
internal FipsKdfAlgorithm(FipsKdfAlgorithm kdfAlg, FipsPrfAlgorithm prfAlgorithm) : base((FipsAlgorithm)kdfAlg.Kdf, prfAlgorithm) { }
internal FipsKdfAlgorithm(FipsAlgorithm kdfAlgorithm, FipsPrfAlgorithm prfAlgorithm) : base(kdfAlgorithm, prfAlgorithm) { }
/// <summary> /// Contruct a PRF algorithm and salt to process the Z value with (as in SP 800-56C) /// </summary> /// <param name="prfAlgorithm">PRF represent the HMAC algorithm to use.</param> /// <param name="salt">The salt to use to initialise the PRF</param> public FipsPrfKmg(FipsPrfAlgorithm prfAlgorithm, byte[] salt) { this.prfAlgorithm = prfAlgorithm; this.salt = Arrays.Clone(salt); }
public FipsPrfKmg(FipsPrfAlgorithm prfAlgorithm) : this(prfAlgorithm, null) { }