Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "net/base/cert_database.h" | 5 #include "net/base/cert_database.h" |
| 6 | 6 |
| 7 #include <cert.h> | 7 #include <cert.h> |
| 8 #include <certdb.h> | 8 #include <certdb.h> |
| 9 #include <keyhi.h> | 9 #include <keyhi.h> |
| 10 #include <pk11pub.h> | 10 #include <pk11pub.h> |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 231 trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE) * TRUSTED_OBJ_SIGN; | 231 trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE) * TRUSTED_OBJ_SIGN; |
| 232 case SERVER_CERT: | 232 case SERVER_CERT: |
| 233 return trust.HasTrustedPeer(PR_TRUE, PR_FALSE, PR_FALSE) * TRUSTED_SSL + | 233 return trust.HasTrustedPeer(PR_TRUE, PR_FALSE, PR_FALSE) * TRUSTED_SSL + |
| 234 trust.HasTrustedPeer(PR_FALSE, PR_TRUE, PR_FALSE) * TRUSTED_EMAIL + | 234 trust.HasTrustedPeer(PR_FALSE, PR_TRUE, PR_FALSE) * TRUSTED_EMAIL + |
| 235 trust.HasTrustedPeer(PR_FALSE, PR_FALSE, PR_TRUE) * TRUSTED_OBJ_SIGN; | 235 trust.HasTrustedPeer(PR_FALSE, PR_FALSE, PR_TRUE) * TRUSTED_OBJ_SIGN; |
| 236 default: | 236 default: |
| 237 return UNTRUSTED; | 237 return UNTRUSTED; |
| 238 } | 238 } |
| 239 } | 239 } |
| 240 | 240 |
| 241 bool CertDatabase::IsUntrusted(const X509Certificate* cert) const { | |
| 242 CERTCertTrust nsstrust; | |
| 243 SECStatus rv = CERT_GetCertTrust(cert->os_cert_handle(), &nsstrust); | |
| 244 if (rv != SECSuccess) { | |
| 245 LOG(ERROR) << "CERT_GetCertTrust failed with error " << PORT_GetError(); | |
| 246 return false; | |
| 247 } | |
| 248 | |
| 249 return nsstrust.sslFlags == 0 && | |
| 250 nsstrust.emailFlags == 0 && | |
| 251 nsstrust.objectSigningFlags == 0; | |
|
wtc
2011/09/12 23:57:04
agl: sorry for the very late reply.
I got the ans
agl
2011/09/13 16:53:50
At least on my Ubuntu system I do have a distruste
wtc
2011/09/14 22:00:53
Yes. Unfortunately the MD5 Collisions Inc. CA in
wtc
2011/09/14 22:58:53
I examined the MD5 Collisions Inc. CA certficate i
| |
| 252 } | |
| 253 | |
| 241 bool CertDatabase::SetCertTrust(const X509Certificate* cert, | 254 bool CertDatabase::SetCertTrust(const X509Certificate* cert, |
| 242 CertType type, | 255 CertType type, |
| 243 unsigned int trusted) { | 256 unsigned int trusted) { |
| 244 bool success = psm::SetCertTrust(cert, type, trusted); | 257 bool success = psm::SetCertTrust(cert, type, trusted); |
| 245 if (success) | 258 if (success) |
| 246 CertDatabase::NotifyObserversOfCertTrustChanged(cert); | 259 CertDatabase::NotifyObserversOfCertTrustChanged(cert); |
| 247 | 260 |
| 248 return success; | 261 return success; |
| 249 } | 262 } |
| 250 | 263 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 270 } | 283 } |
| 271 return true; | 284 return true; |
| 272 } | 285 } |
| 273 | 286 |
| 274 bool CertDatabase::IsReadOnly(const X509Certificate* cert) const { | 287 bool CertDatabase::IsReadOnly(const X509Certificate* cert) const { |
| 275 PK11SlotInfo* slot = cert->os_cert_handle()->slot; | 288 PK11SlotInfo* slot = cert->os_cert_handle()->slot; |
| 276 return slot && PK11_IsReadOnly(slot); | 289 return slot && PK11_IsReadOnly(slot); |
| 277 } | 290 } |
| 278 | 291 |
| 279 } // namespace net | 292 } // namespace net |
| OLD | NEW |