15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "chrome/browser/safe_browsing/incident_reporting/incident_handler_util.h" 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include <string> 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/hash.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/logging.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "third_party/protobuf/src/google/protobuf/message_lite.h" 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace safe_browsing { 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Computes a simple hash digest over the serialized form of |message|. 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// |message| must be in a canonical form. 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)uint32_t HashMessage(const google::protobuf::MessageLite& message) { 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) std::string message_string; 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (!message.SerializeToString(&message_string)) { 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) NOTREACHED(); 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return 0; 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) } 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return base::Hash(message_string); 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace safe_browsing 27