OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef NET_BASE_X509_CERTIFICATE_H_ | 5 #ifndef NET_BASE_X509_CERTIFICATE_H_ |
6 #define NET_BASE_X509_CERTIFICATE_H_ | 6 #define NET_BASE_X509_CERTIFICATE_H_ |
7 | 7 |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 // Ownership follows the "get" rule: it is the caller's responsibility to | 272 // Ownership follows the "get" rule: it is the caller's responsibility to |
273 // retain the elements of the result. | 273 // retain the elements of the result. |
274 const OSCertHandles& GetIntermediateCertificates() const { | 274 const OSCertHandles& GetIntermediateCertificates() const { |
275 return intermediate_ca_certs_; | 275 return intermediate_ca_certs_; |
276 } | 276 } |
277 | 277 |
278 #if defined(OS_MACOSX) | 278 #if defined(OS_MACOSX) |
279 // Does this certificate's usage allow SSL client authentication? | 279 // Does this certificate's usage allow SSL client authentication? |
280 bool SupportsSSLClientAuth() const; | 280 bool SupportsSSLClientAuth() const; |
281 | 281 |
282 // Do any of the given issuer names appear in this cert's chain of trust? | |
283 bool IsIssuedBy(const std::vector<CertPrincipal>& valid_issuers); | |
284 | |
285 // Adds all available SSL client identity certs to the given vector. | |
286 // |server_domain| is a hint for which domain the cert is to be sent to | |
287 // (a cert previously specified as the default for that domain will be given | |
288 // precedence and returned first in the output vector.) | |
289 // If valid_issuers is non-empty, only certs that were transitively issued | |
290 // by one of the given names will be included in the list. | |
291 static bool GetSSLClientCertificates( | |
292 const std::string& server_domain, | |
293 const std::vector<CertPrincipal>& valid_issuers, | |
294 CertificateList* certs); | |
295 | |
296 // Creates the chain of certs to use for this client identity cert. | 282 // Creates the chain of certs to use for this client identity cert. |
297 CFArrayRef CreateClientCertificateChain() const; | 283 CFArrayRef CreateClientCertificateChain() const; |
298 | 284 |
299 // Returns a new CFArrayRef containing this certificate and its intermediate | 285 // Returns a new CFArrayRef containing this certificate and its intermediate |
300 // certificates in the form expected by Security.framework and Keychain | 286 // certificates in the form expected by Security.framework and Keychain |
301 // Services, or NULL on failure. | 287 // Services, or NULL on failure. |
302 // The first item in the array will be this certificate, followed by its | 288 // The first item in the array will be this certificate, followed by its |
303 // intermediates, if any. | 289 // intermediates, if any. |
304 CFArrayRef CreateOSCertChainForCert() const; | 290 CFArrayRef CreateOSCertChainForCert() const; |
305 #endif | 291 #endif |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 // based on the type of the certificate. | 501 // based on the type of the certificate. |
516 std::string default_nickname_; | 502 std::string default_nickname_; |
517 #endif | 503 #endif |
518 | 504 |
519 DISALLOW_COPY_AND_ASSIGN(X509Certificate); | 505 DISALLOW_COPY_AND_ASSIGN(X509Certificate); |
520 }; | 506 }; |
521 | 507 |
522 } // namespace net | 508 } // namespace net |
523 | 509 |
524 #endif // NET_BASE_X509_CERTIFICATE_H_ | 510 #endif // NET_BASE_X509_CERTIFICATE_H_ |
OLD | NEW |