Add macaroon auth token verification

Change-Id: I600116c238a495c7c1ba44267cdc44eb97d181d8
Reviewed-on: https://weave-review.googlesource.com/1946
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/src/privet/auth_manager.cc b/src/privet/auth_manager.cc
index 8e2bfce..0364a87 100644
--- a/src/privet/auth_manager.cc
+++ b/src/privet/auth_manager.cc
@@ -133,5 +133,16 @@
   return clock_->Now();
 }
 
+bool AuthManager::IsValidAuthToken(const std::vector<uint8_t>& token) const {
+  std::vector<uint8_t> buffer(kMaxMacaroonSize);
+  UwMacaroon macaroon{};
+  if (!uw_macaroon_load_(token.data(), token.size(), buffer.data(),
+                         buffer.size(), &macaroon)) {
+    return false;
+  }
+
+  return uw_macaroon_verify_(&macaroon, secret_.data(), secret_.size());
+}
+
 }  // namespace privet
 }  // namespace weave