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/rand_util.h" 6 #include "ppapi/c/dev/ppb_crypto_dev.h" 7 #include "ppapi/thunk/thunk.h" 8 9 // The crypto interface doesn't have a normal C -> C++ thunk since it doesn't 10 // actually have any proxy wrapping or associated objects; it's just a call 11 // into base. So we implement the entire interface here, using the thunk 12 // namespace so it magically gets hooked up in the proper places. 13 14 namespace ppapi { 15 16 namespace { 17 GetRandomBytes(char * buffer,uint32_t num_bytes)18void GetRandomBytes(char* buffer, uint32_t num_bytes) { 19 base::RandBytes(buffer, num_bytes); 20 } 21 22 const PPB_Crypto_Dev crypto_interface = {&GetRandomBytes}; 23 24 } // namespace 25 26 namespace thunk { 27 GetPPB_Crypto_Dev_0_1_Thunk()28PPAPI_THUNK_EXPORT const PPB_Crypto_Dev_0_1* GetPPB_Crypto_Dev_0_1_Thunk() { 29 return &crypto_interface; 30 } 31 32 } // namespace thunk 33 34 } // namespace ppapi 35