| 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 "chrome/common/net/x509_certificate_model.h" | 5 #include "chrome/common/net/x509_certificate_model.h" |
| 6 | 6 |
| 7 #include <openssl/obj_mac.h> | 7 #include <openssl/obj_mac.h> |
| 8 #include <openssl/sha.h> | 8 #include <openssl/sha.h> |
| 9 #include <openssl/stack.h> | 9 #include <openssl/stack.h> |
| 10 #include <openssl/x509.h> | 10 #include <openssl/x509.h> |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 {NS_SMIME_CA, IDS_CERT_EXT_NS_CERT_TYPE_EMAIL_CA}, | 464 {NS_SMIME_CA, IDS_CERT_EXT_NS_CERT_TYPE_EMAIL_CA}, |
| 465 {NS_OBJSIGN_CA, IDS_CERT_USAGE_OBJECT_SIGNER}, | 465 {NS_OBJSIGN_CA, IDS_CERT_USAGE_OBJECT_SIGNER}, |
| 466 }; | 466 }; |
| 467 | 467 |
| 468 crypto::ScopedOpenSSL<ASN1_BIT_STRING, ASN1_BIT_STRING_free>::Type value( | 468 crypto::ScopedOpenSSL<ASN1_BIT_STRING, ASN1_BIT_STRING_free>::Type value( |
| 469 reinterpret_cast<ASN1_BIT_STRING*>(X509V3_EXT_d2i(ex))); | 469 reinterpret_cast<ASN1_BIT_STRING*>(X509V3_EXT_d2i(ex))); |
| 470 if (!value.get()) | 470 if (!value.get()) |
| 471 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); | 471 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); |
| 472 return ProcessBitField(value.get(), | 472 return ProcessBitField(value.get(), |
| 473 usage_string_map, | 473 usage_string_map, |
| 474 ARRAYSIZE_UNSAFE(usage_string_map), | 474 arraysize(usage_string_map), |
| 475 '\n'); | 475 '\n'); |
| 476 } | 476 } |
| 477 | 477 |
| 478 std::string ProcessKeyUsageExtension(X509_EXTENSION* ex) { | 478 std::string ProcessKeyUsageExtension(X509_EXTENSION* ex) { |
| 479 static const MaskIdPair key_usage_string_map[] = { | 479 static const MaskIdPair key_usage_string_map[] = { |
| 480 {KU_DIGITAL_SIGNATURE, IDS_CERT_X509_KEY_USAGE_SIGNING}, | 480 {KU_DIGITAL_SIGNATURE, IDS_CERT_X509_KEY_USAGE_SIGNING}, |
| 481 {KU_NON_REPUDIATION, IDS_CERT_X509_KEY_USAGE_NONREP}, | 481 {KU_NON_REPUDIATION, IDS_CERT_X509_KEY_USAGE_NONREP}, |
| 482 {KU_KEY_ENCIPHERMENT, IDS_CERT_X509_KEY_USAGE_ENCIPHERMENT}, | 482 {KU_KEY_ENCIPHERMENT, IDS_CERT_X509_KEY_USAGE_ENCIPHERMENT}, |
| 483 {KU_DATA_ENCIPHERMENT, IDS_CERT_X509_KEY_USAGE_DATA_ENCIPHERMENT}, | 483 {KU_DATA_ENCIPHERMENT, IDS_CERT_X509_KEY_USAGE_DATA_ENCIPHERMENT}, |
| 484 {KU_KEY_AGREEMENT, IDS_CERT_X509_KEY_USAGE_KEY_AGREEMENT}, | 484 {KU_KEY_AGREEMENT, IDS_CERT_X509_KEY_USAGE_KEY_AGREEMENT}, |
| 485 {KU_KEY_CERT_SIGN, IDS_CERT_X509_KEY_USAGE_CERT_SIGNER}, | 485 {KU_KEY_CERT_SIGN, IDS_CERT_X509_KEY_USAGE_CERT_SIGNER}, |
| 486 {KU_CRL_SIGN, IDS_CERT_X509_KEY_USAGE_CRL_SIGNER}, | 486 {KU_CRL_SIGN, IDS_CERT_X509_KEY_USAGE_CRL_SIGNER}, |
| 487 {KU_ENCIPHER_ONLY, IDS_CERT_X509_KEY_USAGE_ENCIPHER_ONLY}, | 487 {KU_ENCIPHER_ONLY, IDS_CERT_X509_KEY_USAGE_ENCIPHER_ONLY}, |
| 488 {KU_DECIPHER_ONLY, IDS_CERT_X509_KEY_USAGE_DECIPHER_ONLY}, | 488 {KU_DECIPHER_ONLY, IDS_CERT_X509_KEY_USAGE_DECIPHER_ONLY}, |
| 489 }; | 489 }; |
| 490 | 490 |
| 491 crypto::ScopedOpenSSL<ASN1_BIT_STRING, ASN1_BIT_STRING_free>::Type value( | 491 crypto::ScopedOpenSSL<ASN1_BIT_STRING, ASN1_BIT_STRING_free>::Type value( |
| 492 reinterpret_cast<ASN1_BIT_STRING*>(X509V3_EXT_d2i(ex))); | 492 reinterpret_cast<ASN1_BIT_STRING*>(X509V3_EXT_d2i(ex))); |
| 493 if (!value.get()) | 493 if (!value.get()) |
| 494 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); | 494 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); |
| 495 return ProcessBitField(value.get(), | 495 return ProcessBitField(value.get(), |
| 496 key_usage_string_map, | 496 key_usage_string_map, |
| 497 ARRAYSIZE_UNSAFE(key_usage_string_map), | 497 arraysize(key_usage_string_map), |
| 498 '\n'); | 498 '\n'); |
| 499 } | 499 } |
| 500 | 500 |
| 501 std::string ProcessBasicConstraints(X509_EXTENSION* ex) { | 501 std::string ProcessBasicConstraints(X509_EXTENSION* ex) { |
| 502 std::string rv; | 502 std::string rv; |
| 503 crypto::ScopedOpenSSL<BASIC_CONSTRAINTS, BASIC_CONSTRAINTS_free>::Type value( | 503 crypto::ScopedOpenSSL<BASIC_CONSTRAINTS, BASIC_CONSTRAINTS_free>::Type value( |
| 504 reinterpret_cast<BASIC_CONSTRAINTS*>(X509V3_EXT_d2i(ex))); | 504 reinterpret_cast<BASIC_CONSTRAINTS*>(X509V3_EXT_d2i(ex))); |
| 505 if (!value.get()) | 505 if (!value.get()) |
| 506 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); | 506 return l10n_util::GetStringUTF8(IDS_CERT_EXTENSION_DUMP_ERROR); |
| 507 if (value.get()->ca) | 507 if (value.get()->ca) |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 GetKeyValuesFromNameEntries(point->distpoint->name.relativename); | 840 GetKeyValuesFromNameEntries(point->distpoint->name.relativename); |
| 841 // TODO(mattm): should something be done with | 841 // TODO(mattm): should something be done with |
| 842 // point->distpoint->dpname? | 842 // point->distpoint->dpname? |
| 843 break; | 843 break; |
| 844 } | 844 } |
| 845 } | 845 } |
| 846 if (point->reasons) { | 846 if (point->reasons) { |
| 847 rv += ' '; | 847 rv += ' '; |
| 848 rv += ProcessBitField(point->reasons, | 848 rv += ProcessBitField(point->reasons, |
| 849 reason_string_map, | 849 reason_string_map, |
| 850 ARRAYSIZE_UNSAFE(reason_string_map), | 850 arraysize(reason_string_map), |
| 851 ','); | 851 ','); |
| 852 rv += '\n'; | 852 rv += '\n'; |
| 853 } | 853 } |
| 854 if (point->CRLissuer) { | 854 if (point->CRLissuer) { |
| 855 rv += l10n_util::GetStringFUTF8( | 855 rv += l10n_util::GetStringFUTF8( |
| 856 IDS_CERT_ISSUER_FORMAT, | 856 IDS_CERT_ISSUER_FORMAT, |
| 857 base::UTF8ToUTF16(ProcessGeneralNames(point->CRLissuer))); | 857 base::UTF8ToUTF16(ProcessGeneralNames(point->CRLissuer))); |
| 858 } | 858 } |
| 859 } | 859 } |
| 860 | 860 |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 return rv; | 1205 return rv; |
| 1206 } | 1206 } |
| 1207 } | 1207 } |
| 1208 | 1208 |
| 1209 std::string ProcessRawBitsSignatureWrap( | 1209 std::string ProcessRawBitsSignatureWrap( |
| 1210 net::X509Certificate::OSCertHandle cert_handle) { | 1210 net::X509Certificate::OSCertHandle cert_handle) { |
| 1211 return ProcessRawAsn1String(cert_handle->signature); | 1211 return ProcessRawAsn1String(cert_handle->signature); |
| 1212 } | 1212 } |
| 1213 | 1213 |
| 1214 } // namespace x509_certificate_model | 1214 } // namespace x509_certificate_model |
| OLD | NEW |