Index: chrome/renderer/resources/extensions/enterprise_platform_keys/key_pair.js |
diff --git a/chrome/renderer/resources/extensions/enterprise_platform_keys/key_pair.js b/chrome/renderer/resources/extensions/enterprise_platform_keys/key_pair.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..189f7d262b5de5d462132400a8ac8621b0be9165 |
--- /dev/null |
+++ b/chrome/renderer/resources/extensions/enterprise_platform_keys/key_pair.js |
@@ -0,0 +1,35 @@ |
+// 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. |
+ |
+var utils = require('utils'); |
+var intersect = require('enterprise.platformKeys.utils').intersect; |
+var keyModule = require('enterprise.platformKeys.Key'); |
+var Key = keyModule.Key; |
+var KeyType = keyModule.KeyType; |
+var KeyUsage = keyModule.KeyUsage; |
+ |
+/** |
+ * Implementation of WebCrypto.KeyPair used in enterprise.platformKeys. |
+ * @param {ArrayBuffer} publicKeySpki The Subject Public Key Info in DER |
+ * encoding. |
+ * @param {KeyAlgorithm} algorithm The algorithm identifier. |
+ * @param {KeyUsage[]} usages The allowed key usages. |
+ * @constructor |
+ */ |
+var KeyPairImpl = function(publicKeySpki, algorithm, usages) { |
+ this.publicKey = new Key(KeyType.public, |
+ publicKeySpki, |
+ algorithm, |
+ intersect([KeyUsage.verify], usages), |
+ true /* extractable */); |
+ this.privateKey = new Key(KeyType.private, |
+ publicKeySpki, |
+ algorithm, |
+ intersect([KeyUsage.sign], usages), |
+ false /* not extractable */); |
+}; |
+ |
+exports.KeyPair = utils.expose('KeyPair', |
+ KeyPairImpl, |
+ {readonly:['publicKey', 'privateKey']}); |