1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/guid.h"
6
7#include "base/strings/string_util.h"
8
9namespace base {
10
11bool IsValidGUID(const std::string& guid) {
12  const size_t kGUIDLength = 36U;
13  if (guid.length() != kGUIDLength)
14    return false;
15
16  for (size_t i = 0; i < guid.length(); ++i) {
17    char current = guid[i];
18    if (i == 8 || i == 13 || i == 18 || i == 23) {
19      if (current != '-')
20        return false;
21    } else {
22      if (!IsHexDigit(current))
23        return false;
24    }
25  }
26
27  return true;
28}
29
30}  // namespace base
31