Index: net/cert/x509_cert_types_mac.cc |
diff --git a/net/cert/x509_cert_types_mac.cc b/net/cert/x509_cert_types_mac.cc |
index 244fe99d649efe1146904ee31e5846f14fd9339d..339f56536c898c5fe1df43e7216b54e75fe85143 100644 |
--- a/net/cert/x509_cert_types_mac.cc |
+++ b/net/cert/x509_cert_types_mac.cc |
@@ -29,24 +29,17 @@ namespace { |
// as long as the symbols are properly exposed. The fact that Apple's |
// implementation stores it in BER is an internal implementation detail |
// observed by studying libsecurity_cssm. |
-const uint8 kDomainComponentData[] = { |
- 0x09, 0x92, 0x26, 0x89, 0x93, 0xF2, 0x2C, 0x64, 0x01, 0x19 |
-}; |
+const uint8 kDomainComponentData[] = {0x09, 0x92, 0x26, 0x89, 0x93, |
+ 0xF2, 0x2C, 0x64, 0x01, 0x19}; |
-const CSSM_OID kDomainComponentOID = { |
- arraysize(kDomainComponentData), |
- const_cast<uint8*>(kDomainComponentData) |
-}; |
+const CSSM_OID kDomainComponentOID = {arraysize(kDomainComponentData), |
+ const_cast<uint8*>(kDomainComponentData)}; |
const CSSM_OID* kOIDs[] = { |
- &CSSMOID_CommonName, |
- &CSSMOID_LocalityName, |
- &CSSMOID_StateProvinceName, |
- &CSSMOID_CountryName, |
- &CSSMOID_StreetAddress, |
- &CSSMOID_OrganizationName, |
- &CSSMOID_OrganizationalUnitName, |
- &kDomainComponentOID, |
+ &CSSMOID_CommonName, &CSSMOID_LocalityName, |
+ &CSSMOID_StateProvinceName, &CSSMOID_CountryName, |
+ &CSSMOID_StreetAddress, &CSSMOID_OrganizationName, |
+ &CSSMOID_OrganizationalUnitName, &kDomainComponentOID, |
}; |
// The following structs and templates work with Apple's very arcane and under- |
@@ -58,58 +51,57 @@ const CSSM_OID* kOIDs[] = { |
// BER DistinguishedName structure. |
const SecAsn1Template kStringValueTemplate[] = { |
- { SEC_ASN1_CHOICE, offsetof(CSSM_X509_TYPE_VALUE_PAIR, valueType), }, |
- { SEC_ASN1_PRINTABLE_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_PRINTABLE_STRING }, |
- { SEC_ASN1_IA5_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_IA5_STRING }, |
- { SEC_ASN1_T61_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_T61_STRING }, |
- { SEC_ASN1_UTF8_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_PKIX_UTF8_STRING }, |
- { SEC_ASN1_BMP_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_PKIX_BMP_STRING }, |
- { SEC_ASN1_UNIVERSAL_STRING, |
- offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
- BER_TAG_PKIX_UNIVERSAL_STRING }, |
- { 0, } |
-}; |
+ { |
+ SEC_ASN1_CHOICE, offsetof(CSSM_X509_TYPE_VALUE_PAIR, valueType), |
+ }, |
+ {SEC_ASN1_PRINTABLE_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_PRINTABLE_STRING}, |
+ {SEC_ASN1_IA5_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_IA5_STRING}, |
+ {SEC_ASN1_T61_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_T61_STRING}, |
+ {SEC_ASN1_UTF8_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_PKIX_UTF8_STRING}, |
+ {SEC_ASN1_BMP_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_PKIX_BMP_STRING}, |
+ {SEC_ASN1_UNIVERSAL_STRING, offsetof(CSSM_X509_TYPE_VALUE_PAIR, value), 0, |
+ BER_TAG_PKIX_UNIVERSAL_STRING}, |
+ { |
+ 0, |
+ }}; |
const SecAsn1Template kKeyValuePairTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CSSM_X509_TYPE_VALUE_PAIR) }, |
- { SEC_ASN1_OBJECT_ID, offsetof(CSSM_X509_TYPE_VALUE_PAIR, type), }, |
- { SEC_ASN1_INLINE, 0, &kStringValueTemplate, }, |
- { 0, } |
-}; |
+ {SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CSSM_X509_TYPE_VALUE_PAIR)}, |
+ { |
+ SEC_ASN1_OBJECT_ID, offsetof(CSSM_X509_TYPE_VALUE_PAIR, type), |
+ }, |
+ { |
+ SEC_ASN1_INLINE, 0, &kStringValueTemplate, |
+ }, |
+ { |
+ 0, |
+ }}; |
struct KeyValuePairs { |
CSSM_X509_TYPE_VALUE_PAIR* pairs; |
}; |
const SecAsn1Template kKeyValuePairSetTemplate[] = { |
- { SEC_ASN1_SET_OF, offsetof(KeyValuePairs, pairs), |
- kKeyValuePairTemplate, sizeof(KeyValuePairs) } |
-}; |
+ {SEC_ASN1_SET_OF, offsetof(KeyValuePairs, pairs), kKeyValuePairTemplate, |
+ sizeof(KeyValuePairs)}}; |
struct X509Name { |
KeyValuePairs** pairs_list; |
}; |
const SecAsn1Template kNameTemplate[] = { |
- { SEC_ASN1_SEQUENCE_OF, offsetof(X509Name, pairs_list), |
- kKeyValuePairSetTemplate, sizeof(X509Name) } |
-}; |
+ {SEC_ASN1_SEQUENCE_OF, offsetof(X509Name, pairs_list), |
+ kKeyValuePairSetTemplate, sizeof(X509Name)}}; |
// Converts raw CSSM_DATA to a std::string. (Char encoding is unaltered.) |
std::string DataToString(CSSM_DATA data) { |
- return std::string( |
- reinterpret_cast<std::string::value_type*>(data.Data), |
- data.Length); |
+ return std::string(reinterpret_cast<std::string::value_type*>(data.Data), |
+ data.Length); |
} |
// Converts raw CSSM_DATA in ISO-8859-1 to a std::string in UTF-8. |
@@ -122,7 +114,8 @@ std::string Latin1DataToUTF8String(CSSM_DATA data) { |
// Converts big-endian UTF-16 to UTF-8 in a std::string. |
// Note: The byte-order flipping is done in place on the input buffer! |
-bool UTF16BigEndianToUTF8(base::char16* chars, size_t length, |
+bool UTF16BigEndianToUTF8(base::char16* chars, |
+ size_t length, |
std::string* out_string) { |
for (size_t i = 0; i < length; i++) |
chars[i] = EndianU16_BtoN(chars[i]); |
@@ -131,13 +124,14 @@ bool UTF16BigEndianToUTF8(base::char16* chars, size_t length, |
// Converts big-endian UTF-32 to UTF-8 in a std::string. |
// Note: The byte-order flipping is done in place on the input buffer! |
-bool UTF32BigEndianToUTF8(int32_t* chars, size_t length, |
+bool UTF32BigEndianToUTF8(int32_t* chars, |
+ size_t length, |
std::string* out_string) { |
for (size_t i = 0; i < length; ++i) |
chars[i] = EndianS32_BtoN(chars[i]); |
#if defined(WCHAR_T_IS_UTF32) |
- return base::WideToUTF8(reinterpret_cast<const wchar_t*>(chars), |
- length, out_string); |
+ return base::WideToUTF8( |
+ reinterpret_cast<const wchar_t*>(chars), length, out_string); |
#else |
#error This code doesn't handle 16-bit wchar_t. |
#endif |
@@ -182,7 +176,7 @@ bool match(const std::vector<std::string>& rdn1, |
unsigned i2; |
for (i2 = 0; i2 < rdn2.size(); ++i2) { |
if (match(rdn1[i1], rdn2[i2])) |
- break; |
+ break; |
} |
if (i2 == rdn2.size()) |
return false; |
@@ -201,8 +195,8 @@ bool CertPrincipal::ParseDistinguishedName(const void* ber_name_data, |
SecAsn1CoderCreate(&coder); |
DCHECK(coder); |
X509Name* name = NULL; |
- OSStatus err = SecAsn1Decode(coder, ber_name_data, length, kNameTemplate, |
- &name); |
+ OSStatus err = |
+ SecAsn1Decode(coder, ber_name_data, length, kNameTemplate, &name); |
if (err) { |
OSSTATUS_LOG(ERROR, err) << "SecAsn1Decode"; |
SecAsn1CoderRelease(coder); |
@@ -215,13 +209,10 @@ bool CertPrincipal::ParseDistinguishedName(const void* ber_name_data, |
std::vector<std::string> common_names, locality_names, state_names, |
country_names; |
std::vector<std::string>* values[] = { |
- &common_names, &locality_names, |
- &state_names, &country_names, |
- &this->street_addresses, |
- &this->organization_names, |
- &this->organization_unit_names, |
- &this->domain_components |
- }; |
+ &common_names, &locality_names, |
+ &state_names, &country_names, |
+ &this->street_addresses, &this->organization_names, |
+ &this->organization_unit_names, &this->domain_components}; |
DCHECK(arraysize(kOIDs) == arraysize(values)); |
for (int rdn = 0; name[rdn].pairs_list; ++rdn) { |
@@ -230,17 +221,16 @@ bool CertPrincipal::ParseDistinguishedName(const void* ber_name_data, |
NULL != (pair = name[rdn].pairs_list[0][pair_index].pairs); |
++pair_index) { |
switch (pair->valueType) { |
- case BER_TAG_IA5_STRING: // ASCII (that means 7-bit!) |
- case BER_TAG_PRINTABLE_STRING: // a subset of ASCII |
- case BER_TAG_PKIX_UTF8_STRING: // UTF-8 |
+ case BER_TAG_IA5_STRING: // ASCII (that means 7-bit!) |
+ case BER_TAG_PRINTABLE_STRING: // a subset of ASCII |
+ case BER_TAG_PKIX_UTF8_STRING: // UTF-8 |
AddTypeValuePair(pair->type, DataToString(pair->value), values); |
break; |
- case BER_TAG_T61_STRING: // T61, pretend it's Latin-1 |
- AddTypeValuePair(pair->type, |
- Latin1DataToUTF8String(pair->value), |
- values); |
+ case BER_TAG_T61_STRING: // T61, pretend it's Latin-1 |
+ AddTypeValuePair( |
+ pair->type, Latin1DataToUTF8String(pair->value), values); |
break; |
- case BER_TAG_PKIX_BMP_STRING: { // UTF-16, big-endian |
+ case BER_TAG_PKIX_BMP_STRING: { // UTF-16, big-endian |
std::string value; |
UTF16BigEndianToUTF8( |
reinterpret_cast<base::char16*>(pair->value.Data), |
@@ -280,13 +270,13 @@ bool CertPrincipal::ParseDistinguishedName(const void* ber_name_data, |
bool CertPrincipal::Matches(const CertPrincipal& against) const { |
return match(common_name, against.common_name) && |
- match(locality_name, against.locality_name) && |
- match(state_or_province_name, against.state_or_province_name) && |
- match(country_name, against.country_name) && |
- match(street_addresses, against.street_addresses) && |
- match(organization_names, against.organization_names) && |
- match(organization_unit_names, against.organization_unit_names) && |
- match(domain_components, against.domain_components); |
+ match(locality_name, against.locality_name) && |
+ match(state_or_province_name, against.state_or_province_name) && |
+ match(country_name, against.country_name) && |
+ match(street_addresses, against.street_addresses) && |
+ match(organization_names, against.organization_names) && |
+ match(organization_unit_names, against.organization_unit_names) && |
+ match(domain_components, against.domain_components); |
} |
} // namespace net |