1 // Copyright 2013 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 #ifndef PPAPI_PROXY_PLATFORM_VERIFICATION_PRIVATE_RESOURCE_H_ 6 #define PPAPI_PROXY_PLATFORM_VERIFICATION_PRIVATE_RESOURCE_H_ 7 8 #include "ppapi/proxy/plugin_resource.h" 9 #include "ppapi/proxy/ppapi_proxy_export.h" 10 #include "ppapi/thunk/ppb_platform_verification_api.h" 11 12 namespace ppapi { 13 namespace proxy { 14 15 class PPAPI_PROXY_EXPORT PlatformVerificationPrivateResource 16 : public PluginResource, 17 public thunk::PPB_PlatformVerification_API { 18 public: 19 PlatformVerificationPrivateResource(Connection connection, 20 PP_Instance instance); 21 22 private: 23 struct ChallengePlatformParams { 24 PP_Var* signed_data; 25 PP_Var* signed_data_signature; 26 PP_Var* platform_key_certificate; 27 scoped_refptr<TrackedCallback> callback; 28 }; 29 30 virtual ~PlatformVerificationPrivateResource(); 31 32 // PluginResource overrides. 33 virtual thunk::PPB_PlatformVerification_API* 34 AsPPB_PlatformVerification_API() OVERRIDE; 35 36 // PPB_PlatformVerification_API implementation. 37 virtual int32_t ChallengePlatform( 38 const PP_Var& service_id, 39 const PP_Var& challenge, 40 PP_Var* signed_data, 41 PP_Var* signed_data_signature, 42 PP_Var* platform_key_certificate, 43 const scoped_refptr<TrackedCallback>& callback) OVERRIDE; 44 void OnChallengePlatformReply( 45 ChallengePlatformParams output_params, 46 const ResourceMessageReplyParams& params, 47 const std::vector<uint8_t>& raw_signed_data, 48 const std::vector<uint8_t>& raw_signed_data_signature, 49 const std::string& raw_platform_key_certificate); 50 51 DISALLOW_COPY_AND_ASSIGN(PlatformVerificationPrivateResource); 52 }; 53 54 } // namespace proxy 55 } // namespace ppapi 56 57 #endif // PPAPI_PROXY_PLATFORM_VERIFICATION_PRIVATE_RESOURCE_H_ 58