15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file.
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef PPAPI_CPP_DEV_CRYPTO_DEV_H_
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PPAPI_CPP_DEV_CRYPTO_DEV_H_
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "ppapi/c/pp_stdint.h"
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/// @file
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/// This file defines APIs related to cryptography.
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace pp {
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/// APIs related to cryptography.
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Crypto_Dev {
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) public:
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  Crypto_Dev() {}
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  /// A function that fills the buffer with random bytes. This may be slow, so
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  /// avoid getting more bytes than needed.
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  ///
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  /// @param[out] buffer The buffer to receive the random bytes.
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  /// @param[in] num_bytes A number of random bytes to produce.
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  /// @return True on success, false on failure.
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  bool GetRandomBytes(char* buffer, uint32_t num_bytes);
2702772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch};
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}  // namespace pp
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif  // PPAPI_CPP_DEV_CRYPTO_DEV_H_
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)