OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Use the <code>chrome.platformKeys</code> API to access client certificates | 5 // Use the <code>chrome.platformKeys</code> API to access client certificates |
6 // managed by the platform. If the user or policy grants the permission, an | 6 // managed by the platform. If the user or policy grants the permission, an |
7 // extension can use such a certficate in its custom authentication protocol. | 7 // extension can use such a certficate in its custom authentication protocol. |
8 // E.g. this allows usage of platform managed certificates in third party VPNs | 8 // E.g. this allows usage of platform managed certificates in third party VPNs |
9 // (see $(ref:vpnProvider chrome.vpnProvider)). | 9 // (see $(ref:vpnProvider chrome.vpnProvider)). |
10 namespace platformKeys { | 10 namespace platformKeys { |
11 [noinline_doc] dictionary Match { | 11 [noinline_doc] dictionary Match { |
12 // The DER encoding of a X.509 certificate. | 12 // The DER encoding of a X.509 certificate. |
13 ArrayBuffer certificate; | 13 ArrayBuffer certificate; |
14 | 14 |
15 // The | 15 // The |
16 // <a href="http://www.w3.org/TR/WebCryptoAPI/#key-algorithm-dictionary"> | 16 // <a href="http://www.w3.org/TR/WebCryptoAPI/#key-algorithm-dictionary"> |
17 // KeyAlgorithm</a> of the certified key. This contains algorithm | 17 // KeyAlgorithm</a> of the certified key. This contains algorithm |
18 // parameters that are inherent to the key of the certificate (e.g. the key | 18 // parameters that are inherent to the key of the certificate (e.g. the key |
19 // length). Other parameters like the hash function used by the sign | 19 // length). Other parameters like the hash function used by the sign |
20 // function are not included. | 20 // function are not included. |
21 object keyAlgorithm; | 21 object keyAlgorithm; |
22 }; | 22 }; |
23 | 23 |
24 enum ClientCertificateType { | 24 enum ClientCertificateType { |
25 rsaSign, | 25 rsaSign, |
26 dssSign, | |
27 ecdsaSign | 26 ecdsaSign |
28 }; | 27 }; |
29 | 28 |
30 // Analogous to TLS1.1's CertificateRequest. | 29 // Analogous to TLS1.1's CertificateRequest. |
31 // See http://tools.ietf.org/html/rfc4346#section-7.4.4 . | 30 // See http://tools.ietf.org/html/rfc4346#section-7.4.4 . |
32 dictionary ClientCertificateRequest { | 31 dictionary ClientCertificateRequest { |
33 // This field is a list of the types of certificates requested, sorted in | 32 // This field is a list of the types of certificates requested, sorted in |
34 // order of the server's preference. | 33 // order of the server's preference. Only certificates of a type contained |
| 34 // in this list will be retrieved. If <code>certificateTypes</code> is the |
| 35 // empty list, however, certificates of any type will be returned. |
35 ClientCertificateType[] certificateTypes; | 36 ClientCertificateType[] certificateTypes; |
36 | 37 |
37 // List of distinguished names of certificate authorities allowed by the | 38 // List of distinguished names of certificate authorities allowed by the |
38 // server. Each entry must be a DER-encoded X.509 DistinguishedName. | 39 // server. Each entry must be a DER-encoded X.509 DistinguishedName. |
39 ArrayBuffer[] certificateAuthorities; | 40 ArrayBuffer[] certificateAuthorities; |
40 }; | 41 }; |
41 | 42 |
42 dictionary SelectDetails { | 43 dictionary SelectDetails { |
43 // Only certificates that match this request will be returned. | 44 // Only certificates that match this request will be returned. |
44 ClientCertificateRequest request; | 45 ClientCertificateRequest request; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 | 104 |
104 // An implementation of WebCrypto's | 105 // An implementation of WebCrypto's |
105 // <a href="http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface"> | 106 // <a href="http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface"> |
106 // SubtleCrypto</a> | 107 // SubtleCrypto</a> |
107 // that allows crypto operations on keys of client certificates that are | 108 // that allows crypto operations on keys of client certificates that are |
108 // available to this extension. | 109 // available to this extension. |
109 [nocompile] static object subtleCrypto(); | 110 [nocompile] static object subtleCrypto(); |
110 }; | 111 }; |
111 }; | 112 }; |
112 | 113 |
OLD | NEW |