示例#1
0
 public AgreementKdfBuilder WithPrf(FipsPrfAlgorithm prf)
 {
     return(new AgreementKdfBuilder(algorithm, prf, iv));
 }
示例#2
0
 /// <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;
 }
示例#3
0
 internal AgreementKdfBuilder(FipsAlgorithm algorithm, FipsPrfAlgorithm prf, byte[] iv)
 {
     this.algorithm = algorithm;
     this.prf       = prf;
     this.iv        = iv;
 }
示例#4
0
 internal FipsKdfAlgorithm(FipsKdfAlgorithm kdfAlg, FipsPrfAlgorithm prfAlgorithm) : base((FipsAlgorithm)kdfAlg.Kdf, prfAlgorithm)
 {
 }
示例#5
0
 internal FipsKdfAlgorithm(FipsAlgorithm kdfAlgorithm, FipsPrfAlgorithm prfAlgorithm) : base(kdfAlgorithm, prfAlgorithm)
 {
 }
示例#6
0
 /// <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);
 }
示例#7
0
 public FipsPrfKmg(FipsPrfAlgorithm prfAlgorithm) : this(prfAlgorithm, null)
 {
 }