Exemple #1
0
            public BitString GetMacData(IKeyConfirmationParameters param)
            {
                var result = _keyConfirmationMacDataCreator.GetMacData(param);

                result[0] += 2;

                return(result);
            }
Exemple #2
0
 public KeyConfirmationHmac(
     IKeyConfirmationMacDataCreator macDataCreator,
     IKeyConfirmationParameters keyConfirmationParameters,
     IHmac iHmac)
     : base(macDataCreator, keyConfirmationParameters)
 {
     _iHmac = iHmac;
     _keyConfirmationParameters = keyConfirmationParameters;
 }
Exemple #3
0
 public KeyConfirmationKmac(
     IKeyConfirmationMacDataCreator macDataCreator,
     IKeyConfirmationParameters keyConfirmationParameters,
     IKmacFactory kmacFactory, int capacity) :
     base(macDataCreator, keyConfirmationParameters)
 {
     _kmacFactory = kmacFactory;
     _capacity    = capacity;
 }
Exemple #4
0
 public KeyConfirmationAesCcm(
     IKeyConfirmationMacDataCreator macDataCreator,
     IKeyConfirmationParameters keyConfirmationParameters,
     IAeadModeBlockCipher ccm
     )
     : base(macDataCreator, keyConfirmationParameters)
 {
     _ccm = ccm;
     _keyConfirmationParameters = keyConfirmationParameters;
 }
        public IKeyConfirmation GetInstance(IKeyConfirmationParameters parameters)
        {
            switch (parameters.MacType)
            {
            case KeyAgreementMacType.AesCcm:
                ConfirmKeyLengthAesCcm(parameters.KeyLength);
                return(new KeyConfirmationAesCcm(
                           _macDataCreator,
                           parameters,
                           new CcmBlockCipher(new AesEngine(), new ModeBlockCipherFactory(), new AES_CCMInternals())));

            case KeyAgreementMacType.CmacAes:
                var cmacEnum = MapCmacEnum(parameters.KeyLength);

                return(new KeyConfirmationCmac(
                           _macDataCreator, parameters, _cmacFactory.GetCmacInstance(cmacEnum)));

            case KeyAgreementMacType.HmacSha1:
            case KeyAgreementMacType.HmacSha2D224:
            case KeyAgreementMacType.HmacSha2D256:
            case KeyAgreementMacType.HmacSha2D384:
            case KeyAgreementMacType.HmacSha2D512:
            case KeyAgreementMacType.HmacSha2D512_T224:
            case KeyAgreementMacType.HmacSha2D512_T256:
            case KeyAgreementMacType.HmacSha3D224:
            case KeyAgreementMacType.HmacSha3D256:
            case KeyAgreementMacType.HmacSha3D384:
            case KeyAgreementMacType.HmacSha3D512:
                ModeValues  modeValue  = ModeValues.SHA2;
                DigestSizes digestSize = DigestSizes.NONE;
                EnumMapping.GetHashFunctionOptions(parameters.MacType, ref modeValue, ref digestSize);

                return(new KeyConfirmationHmac(
                           _macDataCreator, parameters, _hmacFactory.GetHmacInstance(new HashFunction(modeValue, digestSize))));

            case KeyAgreementMacType.Kmac_128:
                return(new KeyConfirmationKmac(_macDataCreator, parameters, _kmacFactory, 256));

            case KeyAgreementMacType.Kmac_256:
                return(new KeyConfirmationKmac(_macDataCreator, parameters, _kmacFactory, 512));

            default:
                throw new ArgumentException($"{GetType().Name}, {nameof(parameters.MacType)}");
            }
        }
Exemple #6
0
        public IKeyConfirmation GetInstance(IKeyConfirmationParameters parameters)
        {
            var keyConfirmation = _keyConfirmationFactory.GetInstance(parameters);

            return(new FakeKeyConfirmation_BadMacData(keyConfirmation));
        }
Exemple #7
0
 protected KeyConfirmationBase(IKeyConfirmationMacDataCreator macDataCreator, IKeyConfirmationParameters keyConfirmationParameters)
 {
     _macDataCreator            = macDataCreator;
     _keyConfirmationParameters = keyConfirmationParameters;
 }
Exemple #8
0
 public FakeKeyConfirmationBase(IKeyConfirmationMacDataCreator macDataCreator, IKeyConfirmationParameters keyConfirmationParameters)
     : base(macDataCreator, keyConfirmationParameters)
 {
 }