Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / renderer / resources / extensions / enterprise_platform_keys_custom_bindings.js
bloba81c94489b0eff4c609fdc3df9573f6f814b2be5
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.
5 // Custom binding for the enterprise.platformKeys API.
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.
17 var binding = require('binding').Binding.create('enterprise.platformKeys');
18 var Token = require('enterprise.platformKeys.Token').Token;
19 var internalAPI = require('enterprise.platformKeys.internalAPI');
21 binding.registerCustomHook(function(api) {
22   var apiFunctions = api.apiFunctions;
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 });
32 exports.binding = binding.generate();