Esempio n. 1
0
        public KdfResult Kdf(KdfParameterHkdf param, BitString fixedInfo)
        {
            var kdf = _hkdfFactory.GetKdf(ShaAttributes.GetHashFunctionFromEnum(param.HmacAlg));

            var result = kdf.DeriveKey(param.Salt, param.Z, fixedInfo, param.L / BitString.BITSINBYTE);

            if (result.Success)
            {
                return(new KdfResult(result.DerivedKey));
            }

            return(new KdfResult(result.ErrorMessage));
        }
        public KdfMultiExpansionResult Kdf(KdfMultiExpansionParameterHkdf param)
        {
            var kdf = _hkdfFactory.GetKdf(ShaAttributes.GetHashFunctionFromEnum(param.HmacAlg));

            List <KdfResult> result = new List <KdfResult>();

            foreach (var iterationParameter in param.IterationParameters)
            {
                result.Add(kdf.DeriveKey(param.Salt, param.Z, iterationParameter.FixedInfo, iterationParameter.L / BitString.BITSINBYTE));
            }

            return(new KdfMultiExpansionResult(result));
        }
Esempio n. 3
0
        public ITlsKdf_v1_3 GetInstance(HashFunctions hashFunction)
        {
            var hf = ShaAttributes.GetHashFunctionFromEnum(hashFunction);

            return(new TlsKdfv13(_hkdfFactory.GetKdf(hf), _shaFactory.GetShaInstance(hf), hf.OutputLen));
        }