Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: net/cert/cert_status_flags.h

Issue 76443006: Certificate Transparency: Threading the CT verifier into the SSL client socket. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing error codes Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_CERT_CERT_STATUS_FLAGS_H_ 5 #ifndef NET_CERT_CERT_STATUS_FLAGS_H_
6 #define NET_CERT_CERT_STATUS_FLAGS_H_ 6 #define NET_CERT_CERT_STATUS_FLAGS_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "net/base/net_export.h" 9 #include "net/base/net_export.h"
10 10
(...skipping 17 matching lines...) Expand all
28 static const CertStatus CERT_STATUS_UNABLE_TO_CHECK_REVOCATION = 1 << 5; 28 static const CertStatus CERT_STATUS_UNABLE_TO_CHECK_REVOCATION = 1 << 5;
29 static const CertStatus CERT_STATUS_REVOKED = 1 << 6; 29 static const CertStatus CERT_STATUS_REVOKED = 1 << 6;
30 static const CertStatus CERT_STATUS_INVALID = 1 << 7; 30 static const CertStatus CERT_STATUS_INVALID = 1 << 7;
31 static const CertStatus CERT_STATUS_WEAK_SIGNATURE_ALGORITHM = 1 << 8; 31 static const CertStatus CERT_STATUS_WEAK_SIGNATURE_ALGORITHM = 1 << 8;
32 // 1 << 9 was used for CERT_STATUS_NOT_IN_DNS 32 // 1 << 9 was used for CERT_STATUS_NOT_IN_DNS
33 static const CertStatus CERT_STATUS_NON_UNIQUE_NAME = 1 << 10; 33 static const CertStatus CERT_STATUS_NON_UNIQUE_NAME = 1 << 10;
34 static const CertStatus CERT_STATUS_WEAK_KEY = 1 << 11; 34 static const CertStatus CERT_STATUS_WEAK_KEY = 1 << 11;
35 static const CertStatus CERT_STATUS_WEAK_DH_KEY = 1 << 12; 35 static const CertStatus CERT_STATUS_WEAK_DH_KEY = 1 << 12;
36 static const CertStatus CERT_STATUS_PINNED_KEY_MISSING = 1 << 13; 36 static const CertStatus CERT_STATUS_PINNED_KEY_MISSING = 1 << 13;
37 37
38 // Bits 16 to 31 are for non-error statuses. 38 // Bits 16 to 29 are for non-error statuses.
39 static const CertStatus CERT_STATUS_IS_EV = 1 << 16; 39 static const CertStatus CERT_STATUS_IS_EV = 1 << 16;
40 static const CertStatus CERT_STATUS_REV_CHECKING_ENABLED = 1 << 17; 40 static const CertStatus CERT_STATUS_REV_CHECKING_ENABLED = 1 << 17;
41 // bit 18 was CERT_STATUS_IS_DNSSEC. 41 // bit 18 was CERT_STATUS_IS_DNSSEC.
42 42
43 // Bits 30, 31 are for Certificate Transparency.
44 static const int CERTIFICATE_TRANSPARENCY_STATUS_SHIFT = 30;
45 static const int CERTIFICATE_TRANSPARENCY_STATUS_MASK = 3;
wtc 2013/11/27 20:00:49 This mask should have the same type as CertStatus
Eran M. (Google) 2013/11/27 23:01:42 Done.
46 enum {
47 CERT_TRANSPARENCY_NO_SCTS = 0,
48 CERT_TRANSPARENCY_SCT_FROM_UNKNOWN_LOGS = 1,
49 CERT_TRANSPARENCY_SCT_FAILED_VALIDATION = 2,
50 CERT_TRANSPARENCY_SCT_VALIDATED_OK = 3,
wtc 2013/11/27 20:00:49 Nit: the four values should be documented.
Eran M. (Google) 2013/11/27 23:01:42 Done.
51 };
52
43 // Returns true if the specified cert status has an error set. 53 // Returns true if the specified cert status has an error set.
44 static inline bool IsCertStatusError(CertStatus status) { 54 static inline bool IsCertStatusError(CertStatus status) {
45 return (CERT_STATUS_ALL_ERRORS & status) != 0; 55 return (CERT_STATUS_ALL_ERRORS & status) != 0;
46 } 56 }
47 57
48 // IsCertStatusMinorError returns true iff |cert_status| indicates a condition 58 // IsCertStatusMinorError returns true iff |cert_status| indicates a condition
49 // that should typically be ignored by automated requests. (i.e. a revocation 59 // that should typically be ignored by automated requests. (i.e. a revocation
50 // check failure.) 60 // check failure.)
51 NET_EXPORT bool IsCertStatusMinorError(CertStatus cert_status); 61 NET_EXPORT bool IsCertStatusMinorError(CertStatus cert_status);
52 62
53 // Maps a network error code to the equivalent certificate status flag. If 63 // Maps a network error code to the equivalent certificate status flag. If
54 // the error code is not a certificate error, it is mapped to 0. 64 // the error code is not a certificate error, it is mapped to 0.
55 NET_EXPORT CertStatus MapNetErrorToCertStatus(int error); 65 NET_EXPORT CertStatus MapNetErrorToCertStatus(int error);
56 66
57 // Maps the most serious certificate error in the certificate status flags 67 // Maps the most serious certificate error in the certificate status flags
58 // to the equivalent network error code. 68 // to the equivalent network error code.
59 NET_EXPORT int MapCertStatusToNetError(CertStatus cert_status); 69 NET_EXPORT int MapCertStatusToNetError(CertStatus cert_status);
60 70
71 inline int CertificateTransparencyStateFromCertStatus(CertStatus cert_status) {
wtc 2013/11/27 20:00:49 It may be better to return uint32... Document thi
Eran M. (Google) 2013/11/27 23:01:42 Gave a proper name to the enum, added documentati
72 return (cert_status >> CERTIFICATE_TRANSPARENCY_STATUS_SHIFT) &
73 CERTIFICATE_TRANSPARENCY_STATUS_MASK;
74 }
75
61 } // namespace net 76 } // namespace net
62 77
63 #endif // NET_CERT_CERT_STATUS_FLAGS_H_ 78 #endif // NET_CERT_CERT_STATUS_FLAGS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698