internal static IEngineProvider <IMac> CreateMacProvider(string name, IAuthenticationParametersWithIV <IParameters <Algorithm>, Algorithm> parameters, IEngineProvider <Org.BouncyCastle.Crypto.Internal.IBlockCipher> baseCipher) { switch (parameters.Algorithm.Mode) { case AlgorithmMode.CCM: return(new CcmMacProvider(baseCipher, parameters)); case AlgorithmMode.GMAC: return(new GMacProvider(baseCipher, parameters)); default: throw new ArgumentException("Unknown MAC algorithm passed to " + name + ".Provider: " + parameters.Algorithm.Mode); } }
internal CcmMacProvider(IEngineProvider <Internal.IBlockCipher> baseProvider, IAuthenticationParametersWithIV <IParameters <Algorithm>, Algorithm> parameters) { this.baseProvider = baseProvider; this.parameters = parameters; }