summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/crypto_impl.cc
blob: 6295bb2274138a588463ecf87ed0ce0f513440be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ppapi/shared_impl/crypto_impl.h"

#include "base/rand_util.h"

namespace pp {
namespace shared_impl {

// static
void CryptoImpl::GetRandomBytes(char* buffer, uint32_t num_bytes) {
  // Note: this is a copy of WebKitClientImpl::cryptographicallyRandomValues.
  uint64 bytes = 0;
  for (uint32_t i = 0; i < num_bytes; ++i) {
    uint32_t offset = i % sizeof(bytes);
    if (!offset)
      bytes = base::RandUint64();
    buffer[i] = reinterpret_cast<char*>(&bytes)[offset];
  }
}

}  // namespace shared_impl
}  // namespace pp