Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef NET_BASE_X509_CHAIN_H_ | |
| 6 #define NET_BASE_X509_CHAIN_H_ | |
| 7 #pragma once | |
| 8 | |
| 9 #include <string> | |
| 10 | |
| 11 namespace net { | |
| 12 | |
| 13 class CertVerifyResult; | |
| 14 class X509Certificate; | |
| 15 | |
| 16 // Functions related to X.509 certificate chain building and verification. | |
| 17 namespace x509_chain { | |
| 18 | |
| 19 enum VerifyFlags { | |
| 20 VERIFY_REV_CHECKING_ENABLED = 1 << 0, | |
| 21 VERIFY_EV_CERT = 1 << 1, | |
| 22 }; | |
| 23 | |
| 24 // Verifies that |certificate| is a valid SSL server certificate for the | |
| 25 // given |hostname|. against the given hostname. Returns OK if successful | |
|
bulach
2010/10/21 10:21:33
s/against the given hostname.//
| |
| 26 // or an error code upon failure. | |
| 27 // | |
| 28 // The |*verify_result| structure, including the |verify_result->cert_status| | |
| 29 // bitmask, is always filled out regardless of the return value. If the | |
| 30 // certificate has multiple errors, the corresponding status flags are set in | |
| 31 // |verify_result->cert_status|, and the error code for the most serious | |
| 32 // error is returned. | |
| 33 // | |
| 34 // |flags| is bitwise OR'd of VerifyFlags. | |
| 35 // If VERIFY_REV_CHECKING_ENABLED is set in |flags|, certificate revocation | |
| 36 // checking is performed. If VERIFY_EV_CERT is set in |flags| too, | |
| 37 // EV certificate verification is performed. | |
| 38 int VerifySSLServer(X509Certificate* certificate, const std::string& hostname, | |
| 39 int flags, CertVerifyResult* verify_result); | |
| 40 | |
| 41 } // namespace x509_chain | |
| 42 | |
| 43 } // namespace net | |
| 44 | |
| 45 #endif // NET_BASE_X509_CHAIN_H_ | |
| OLD | NEW |