Index: chrome/renderer/resources/extensions/enterprise_platform_keys_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/enterprise_platform_keys_custom_bindings.js b/chrome/renderer/resources/extensions/enterprise_platform_keys_custom_bindings.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c4339e7ca3f722a3f94bd49c79523dbe9ed2f0e5 |
--- /dev/null |
+++ b/chrome/renderer/resources/extensions/enterprise_platform_keys_custom_bindings.js |
@@ -0,0 +1,32 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Custom binding for the enterprise.platformKeys API. |
+ |
+// The platformKeys API consists of two major parts: |
+// - the certificate management. |
+// - the key generation and crypto operations and |
+// The former is implemented without custom binding as static functions. |
+// The latter is exposed by implementing WebCrypto's SubtleCrypto interface. |
+// The internal API provides the key and crypto operations through static |
+// functions expecting token IDs and this custom binding adds the SubtleCrypto |
+// wrapper. |
+// The Token object holds the token id and the SubtleCrypto member. |
+ |
+var binding = require('binding').Binding.create('enterprise.platformKeys'); |
+var Token = require('enterprise.platformKeys.Token').Token; |
+var internalAPI = require('enterprise.platformKeysInternal').binding; |
+ |
+binding.registerCustomHook(function(api) { |
+ var apiFunctions = api.apiFunctions; |
+ |
+ var ret = apiFunctions.setHandleRequest('getTokens', function(callback) { |
+ internalAPI.getTokens(function(tokenIds) { |
+ callback($Array.map(tokenIds, |
+ function(tokenId) { return new Token(tokenId); })); |
+ }); |
+ }); |
+}); |
+ |
+exports.binding = binding.generate(); |