diff options
author | Matthias Gierlings <[email protected]> | 2016-10-27 19:00:23 +0200 |
---|---|---|
committer | Matthias Gierlings <[email protected]> | 2016-10-28 10:49:38 +0200 |
commit | 9ad816a5d8d74105558640b2f37baec50d8b920f (patch) | |
tree | 8400746b4ce9915244c91aa4dcaa1cfb05b508ff /src/lib/mac/mac.cpp | |
parent | 425a2c2497387b7b5804738a77c757b93e630322 (diff) |
Implements GMAC with GHASH.
Adds support for Galois Message Authentication Code calculation based on
GHASH, rather than GCM_Mode.
Diffstat (limited to 'src/lib/mac/mac.cpp')
-rw-r--r-- | src/lib/mac/mac.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/mac/mac.cpp b/src/lib/mac/mac.cpp index f2c5557c7..2fa321a67 100644 --- a/src/lib/mac/mac.cpp +++ b/src/lib/mac/mac.cpp @@ -45,6 +45,17 @@ MessageAuthenticationCode::create(const std::string& algo_spec, { const SCAN_Name req(algo_spec); +#if defined(BOTAN_HAS_GMAC) + if(req.algo_name() == "GMAC" && req.arg_count() == 1) + { + if(provider.empty() || provider == "base") + { + if(auto bc = BlockCipher::create(req.arg(0))) + return std::unique_ptr<MessageAuthenticationCode>(new GMAC(bc.release())); + } + } +#endif + #if defined(BOTAN_HAS_HMAC) if(req.algo_name() == "HMAC" && req.arg_count() == 1) { |