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

Side by Side Diff: net/cert/x509_certificate_mac.cc

Issue 63153003: mac: Prepare for -Wunused-functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month 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
« no previous file with comments | « net/cert/ct_serialization.cc ('k') | net/cookies/cookie_monster.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "net/cert/x509_certificate.h" 5 #include "net/cert/x509_certificate.h"
6 6
7 #include <CommonCrypto/CommonDigest.h> 7 #include <CommonCrypto/CommonDigest.h>
8 #include <CoreServices/CoreServices.h> 8 #include <CoreServices/CoreServices.h>
9 #include <Security/Security.h> 9 #include <Security/Security.h>
10 10
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 199 }
200 } 200 }
201 201
202 struct CSSMOIDString { 202 struct CSSMOIDString {
203 const CSSM_OID* oid_; 203 const CSSM_OID* oid_;
204 std::string string_; 204 std::string string_;
205 }; 205 };
206 206
207 typedef std::vector<CSSMOIDString> CSSMOIDStringVector; 207 typedef std::vector<CSSMOIDString> CSSMOIDStringVector;
208 208
209 bool CERTNameToCSSMOIDVector(CERTName* name, CSSMOIDStringVector* out_values) {
210 struct OIDCSSMMap {
211 SECOidTag sec_OID_;
212 const CSSM_OID* cssm_OID_;
213 };
214
215 const OIDCSSMMap kOIDs[] = {
216 { SEC_OID_AVA_COMMON_NAME, &CSSMOID_CommonName },
217 { SEC_OID_AVA_COUNTRY_NAME, &CSSMOID_CountryName },
218 { SEC_OID_AVA_LOCALITY, &CSSMOID_LocalityName },
219 { SEC_OID_AVA_STATE_OR_PROVINCE, &CSSMOID_StateProvinceName },
220 { SEC_OID_AVA_STREET_ADDRESS, &CSSMOID_StreetAddress },
221 { SEC_OID_AVA_ORGANIZATION_NAME, &CSSMOID_OrganizationName },
222 { SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME, &CSSMOID_OrganizationalUnitName },
223 { SEC_OID_AVA_DN_QUALIFIER, &CSSMOID_DNQualifier },
224 { SEC_OID_RFC1274_UID, &CSSMOID_UniqueIdentifier },
225 { SEC_OID_PKCS9_EMAIL_ADDRESS, &CSSMOID_EmailAddress },
226 };
227
228 CERTRDN** rdns = name->rdns;
229 for (size_t rdn = 0; rdns[rdn]; ++rdn) {
230 CERTAVA** avas = rdns[rdn]->avas;
231 for (size_t pair = 0; avas[pair] != 0; ++pair) {
232 SECOidTag tag = CERT_GetAVATag(avas[pair]);
233 if (tag == SEC_OID_UNKNOWN) {
234 return false;
235 }
236 CSSMOIDString oidString;
237 bool found_oid = false;
238 for (size_t oid = 0; oid < ARRAYSIZE_UNSAFE(kOIDs); ++oid) {
239 if (kOIDs[oid].sec_OID_ == tag) {
240 SECItem* decode_item = CERT_DecodeAVAValue(&avas[pair]->value);
241 if (!decode_item)
242 return false;
243
244 // TODO(wtc): Pass decode_item to CERT_RFC1485_EscapeAndQuote.
245 std::string value(reinterpret_cast<char*>(decode_item->data),
246 decode_item->len);
247 oidString.oid_ = kOIDs[oid].cssm_OID_;
248 oidString.string_ = value;
249 out_values->push_back(oidString);
250 SECITEM_FreeItem(decode_item, PR_TRUE);
251 found_oid = true;
252 break;
253 }
254 }
255 if (!found_oid) {
256 DLOG(ERROR) << "Unrecognized OID: " << tag;
257 }
258 }
259 }
260 return true;
261 }
262
263 class ScopedCertName { 209 class ScopedCertName {
264 public: 210 public:
265 explicit ScopedCertName(CERTName* name) : name_(name) { } 211 explicit ScopedCertName(CERTName* name) : name_(name) { }
266 ~ScopedCertName() { 212 ~ScopedCertName() {
267 if (name_) CERT_DestroyName(name_); 213 if (name_) CERT_DestroyName(name_);
268 } 214 }
269 operator CERTName*() { return name_; } 215 operator CERTName*() { return name_; }
270 216
271 private: 217 private:
272 CERTName* name_; 218 CERTName* name_;
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 *type = kPublicKeyTypeDH; 548 *type = kPublicKeyTypeDH;
603 break; 549 break;
604 default: 550 default:
605 *type = kPublicKeyTypeUnknown; 551 *type = kPublicKeyTypeUnknown;
606 *size_bits = 0; 552 *size_bits = 0;
607 break; 553 break;
608 } 554 }
609 } 555 }
610 556
611 } // namespace net 557 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/ct_serialization.cc ('k') | net/cookies/cookie_monster.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698