Home | History | Annotate | Download | only in extensions
      1 // Copyright 2014 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 // Custom binding for the enterprise.platformKeys API.
      6 
      7 // The platformKeys API consists of two major parts:
      8 //   - the certificate management.
      9 //   - the key generation and crypto operations and
     10 // The former is implemented without custom binding as static functions.
     11 // The latter is exposed by implementing WebCrypto's SubtleCrypto interface.
     12 // The internal API provides the key and crypto operations through static
     13 // functions expecting token IDs and this custom binding adds the SubtleCrypto
     14 // wrapper.
     15 // The Token object holds the token id and the SubtleCrypto member.
     16 
     17 var binding = require('binding').Binding.create('enterprise.platformKeys');
     18 var Token = require('enterprise.platformKeys.Token').Token;
     19 var internalAPI = require('enterprise.platformKeys.internalAPI');
     20 
     21 binding.registerCustomHook(function(api) {
     22   var apiFunctions = api.apiFunctions;
     23 
     24   var ret = apiFunctions.setHandleRequest('getTokens', function(callback) {
     25     internalAPI.getTokens(function(tokenIds) {
     26       callback($Array.map(tokenIds,
     27                           function(tokenId) { return new Token(tokenId); }));
     28     });
     29   });
     30 });
     31 
     32 exports.binding = binding.generate();
     33