aboutsummaryrefslogtreecommitdiff
path: root/cc/mac/hmac_key_manager.h
diff options
context:
space:
mode:
authorwconner <wconner@google.com>2022-07-14 06:07:58 -0700
committerCopybara-Service <copybara-worker@google.com>2022-07-14 06:08:59 -0700
commit079e65f0d0a545a9d7196e5fdebd5f25b0eb3421 (patch)
treefe90eb596e85db01e4d47ce02a51066c652b20b3 /cc/mac/hmac_key_manager.h
parentc3dd0336228a7bcb27a758c903058ffe44f28528 (diff)
downloadtink-079e65f0d0a545a9d7196e5fdebd5f25b0eb3421.tar.gz
Add ChunkedMac primitive to existing MAC key managers.
Also, fixed header in chunked_mac_impl.cc. PiperOrigin-RevId: 460940641
Diffstat (limited to 'cc/mac/hmac_key_manager.h')
-rw-r--r--cc/mac/hmac_key_manager.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/cc/mac/hmac_key_manager.h b/cc/mac/hmac_key_manager.h
index 7f63890b9..ab4be1562 100644
--- a/cc/mac/hmac_key_manager.h
+++ b/cc/mac/hmac_key_manager.h
@@ -20,6 +20,8 @@
#include "absl/memory/memory.h"
#include "absl/strings/str_cat.h"
+#include "tink/chunked_mac.h"
+#include "tink/chunkedmac/internal/chunked_mac_impl.h"
#include "tink/core/key_type_manager.h"
#include "tink/mac.h"
#include "tink/subtle/hmac_boringssl.h"
@@ -38,7 +40,8 @@ namespace tink {
class HmacKeyManager
: public KeyTypeManager<google::crypto::tink::HmacKey,
- google::crypto::tink::HmacKeyFormat, List<Mac>> {
+ google::crypto::tink::HmacKeyFormat,
+ List<Mac, ChunkedMac>> {
public:
class MacFactory : public PrimitiveFactory<Mac> {
crypto::tink::util::StatusOr<std::unique_ptr<Mac>> Create(
@@ -50,7 +53,16 @@ class HmacKeyManager
}
};
- HmacKeyManager() : KeyTypeManager(absl::make_unique<MacFactory>()) {}
+ class ChunkedMacFactory : public PrimitiveFactory<ChunkedMac> {
+ crypto::tink::util::StatusOr<std::unique_ptr<ChunkedMac>> Create(
+ const google::crypto::tink::HmacKey& hmac_key) const override {
+ return internal::NewChunkedHmac(hmac_key);
+ }
+ };
+
+ HmacKeyManager()
+ : KeyTypeManager(absl::make_unique<MacFactory>(),
+ absl::make_unique<ChunkedMacFactory>()) {}
uint32_t get_version() const override { return 0; }