public BitString GetMacData(INoKeyConfirmationParameters param) { return(new BitString( Encoding.ASCII.GetBytes(STANDARD_MESSAGE) ) .ConcatenateBits(param.Nonce)); }
public INoKeyConfirmation GetInstance(INoKeyConfirmationParameters parameters) { switch (parameters.KeyAgreementMacType) { case KeyAgreementMacType.AesCcm: return(new NoKeyConfirmationAesCcm(_macDataCreator, parameters, new CcmBlockCipher(new AesEngine(), new ModeBlockCipherFactory(), new AES_CCMInternals()))); case KeyAgreementMacType.CmacAes: return(new NoKeyConfirmationCmac(_macDataCreator, parameters, _cmacFactory.GetCmacInstance(CmacTypes.AES128))); // doesn't matter as long as aea 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.KeyAgreementMacType, ref modeValue, ref digestSize); return(new NoKeyConfirmationHmac(_macDataCreator, parameters, _hmacFactory.GetHmacInstance(new HashFunction(modeValue, digestSize)))); default: throw new ArgumentException($"{GetType().Name}, {nameof(parameters.KeyAgreementMacType)}"); } }
public NoKeyConfirmationHmac( INoKeyConfirmationMacDataCreator macDataCreator, INoKeyConfirmationParameters noKeyConfirmationParameters, IHmac algo) : base(macDataCreator, noKeyConfirmationParameters) { Algo = algo; }
public BitString GetMacData(INoKeyConfirmationParameters param) { var result = _noKeyConfirmationMacDataCreator.GetMacData(param); result[0] += 2; return(result); }
public NoKeyConfirmationAesCcm(INoKeyConfirmationMacDataCreator macDataCreator, INoKeyConfirmationParameters noKeyConfirmationParameters, IAeadModeBlockCipher algo) : base(macDataCreator, noKeyConfirmationParameters) { _algo = algo; if (BitString.IsZeroLengthOrNull(noKeyConfirmationParameters.CcmNonce)) { throw new ArgumentException(nameof(noKeyConfirmationParameters.CcmNonce)); } }
protected NoKeyConfirmationBase( INoKeyConfirmationMacDataCreator macDataCreator, INoKeyConfirmationParameters noKeyConfirmationParameters) { _macDataCreator = macDataCreator; NoKeyConfirmationParameters = noKeyConfirmationParameters; if (BitString.IsZeroLengthOrNull(NoKeyConfirmationParameters.DerivedKeyingMaterial)) { throw new ArgumentException(nameof(NoKeyConfirmationParameters.DerivedKeyingMaterial)); } if (BitString.IsZeroLengthOrNull(NoKeyConfirmationParameters.Nonce)) { throw new ArgumentException(nameof(NoKeyConfirmationParameters.Nonce)); } }
public INoKeyConfirmation GetInstance(INoKeyConfirmationParameters parameters) { var noKeyConfirmation = _noKeyConfirmationFactory.GetInstance(parameters); return(new FakeNoKeyConfirmation_BadMacData(noKeyConfirmation)); }