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 { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 // <code>callback</code>. | 113 // <code>callback</code>. |
114 [nocompile] static void selectClientCertificates( | 114 [nocompile] static void selectClientCertificates( |
115 SelectDetails details, | 115 SelectDetails details, |
116 SelectCallback callback); | 116 SelectCallback callback); |
117 | 117 |
118 // Passes the key pair of <code>certificate</code> for usage with | 118 // Passes the key pair of <code>certificate</code> for usage with |
119 // $(ref:platformKeys.subtleCrypto) to <code>callback</code>. | 119 // $(ref:platformKeys.subtleCrypto) to <code>callback</code>. |
120 // |certificate|: The certificate of a $(ref:Match) returned by | 120 // |certificate|: The certificate of a $(ref:Match) returned by |
121 // $(ref:selectClientCertificates). | 121 // $(ref:selectClientCertificates). |
122 // |parameters|: Determines signature/hash algorithm parameters additionally | 122 // |parameters|: Determines signature/hash algorithm parameters additionally |
123 // to the parameters fixed by the key itself. The same parameters are | 123 // to the parameters fixed by the key itself. The same parameters are |
pneubeck (no reviews)
2015/09/28 13:22:26
the space at the beginning of the line led to weir
| |
124 // accepted as by WebCrypto's <code>importKey</code> function, e.g. | 124 // accepted as by WebCrypto's <a |
125 // <code>RsaHashedImportParams</code> for a RSASSA-PKCS1-v1_5 key. | 125 // href="http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-importKey">i mportKey</a> |
126 // For RSASSA-PKCS1-v1_5 keys, additionally the parameters | 126 // function, e.g. <code>RsaHashedImportParams</code> for a RSASSA-PKCS1-v1_5 |
127 // <code>{ 'hash': { 'name': 'none' } }</code> are supported. The sign | 127 // key. For RSASSA-PKCS1-v1_5 keys, additionally the parameters <code>{ |
128 // function will then apply PKCS#1 v1.5 padding and but not hash the | 128 // "hash": { "name": "none" } }</code> are supported. The sign function will |
129 // given data. | 129 // then apply PKCS#1 v1.5 padding and but not hash the given data. |
130 // <p>Currently, this function only supports the "RSASSA-PKCS1-v1_5" | |
131 // algorithm with one of the hashing algorithms "none", "SHA-1", "SHA-256", | |
132 // "SHA-384", and "SHA-512".</p> | |
130 [nocompile] static void getKeyPair(ArrayBuffer certificate, | 133 [nocompile] static void getKeyPair(ArrayBuffer certificate, |
131 object parameters, | 134 object parameters, |
132 GetKeyPairCallback callback); | 135 GetKeyPairCallback callback); |
133 | 136 |
134 // An implementation of WebCrypto's | 137 // An implementation of WebCrypto's |
135 // <a href="http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface"> | 138 // <a href="http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface"> |
136 // SubtleCrypto</a> | 139 // SubtleCrypto</a> |
137 // that allows crypto operations on keys of client certificates that are | 140 // that allows crypto operations on keys of client certificates that are |
138 // available to this extension. | 141 // available to this extension. |
139 [nocompile] static object subtleCrypto(); | 142 [nocompile] static object subtleCrypto(); |
140 | 143 |
141 // Checks whether <code>details.serverCertificateChain</code> can be trusted | 144 // Checks whether <code>details.serverCertificateChain</code> can be trusted |
142 // for <code>details.hostname</code> according to the trust settings of the | 145 // for <code>details.hostname</code> according to the trust settings of the |
143 // platform. | 146 // platform. |
144 // Note: The actual behavior of the trust verification is not fully | 147 // Note: The actual behavior of the trust verification is not fully |
145 // specified and might change in the future. | 148 // specified and might change in the future. |
146 // The API implementation verifies certificate expiration, validates the | 149 // The API implementation verifies certificate expiration, validates the |
147 // certification path and checks trust by a known CA. | 150 // certification path and checks trust by a known CA. |
148 // The implementation is supposed to respect the EKU serverAuth and to | 151 // The implementation is supposed to respect the EKU serverAuth and to |
149 // support subject alternative names. | 152 // support subject alternative names. |
150 static void verifyTLSServerCertificate(VerificationDetails details, | 153 static void verifyTLSServerCertificate(VerificationDetails details, |
151 VerificationCallback callback); | 154 VerificationCallback callback); |
152 }; | 155 }; |
153 }; | 156 }; |
154 | 157 |
OLD | NEW |