Home | History | Annotate | Download | only in proxy
      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