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 |