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