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 17var binding = require('binding').Binding.create('enterprise.platformKeys'); 18var Token = require('enterprise.platformKeys.Token').Token; 19var internalAPI = require('enterprise.platformKeys.internalAPI'); 20 21binding.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 32exports.binding = binding.generate(); 33