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

Side by Side Diff: net/cert/internal/parse_name.cc

Issue 2746103003: Add X509CertificateBytes which uses CRYPTO_BUFFER instead of macOS-native certificate types. (Closed)
Patch Set: . Created 3 years, 8 months 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/internal/parse_name.h" 5 #include "net/cert/internal/parse_name.h"
6 6
7 #include "base/strings/string16.h" 7 #include "base/strings/string16.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversion_utils.h" 10 #include "base/strings/utf_string_conversion_utils.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 static const uint8_t oid[] = {0x55, 0x04, 0x07}; 127 static const uint8_t oid[] = {0x55, 0x04, 0x07};
128 return der::Input(oid); 128 return der::Input(oid);
129 } 129 }
130 130
131 der::Input TypeStateOrProvinceNameOid() { 131 der::Input TypeStateOrProvinceNameOid() {
132 // id-at-stateOrProvinceName: 2.5.4.8 (RFC 5280) 132 // id-at-stateOrProvinceName: 2.5.4.8 (RFC 5280)
133 static const uint8_t oid[] = {0x55, 0x04, 0x08}; 133 static const uint8_t oid[] = {0x55, 0x04, 0x08};
134 return der::Input(oid); 134 return der::Input(oid);
135 } 135 }
136 136
137 der::Input TypeStreetAddressOid() {
138 // street (streetAddress): 2.5.4.9 (RFC 4519)
139 static const uint8_t oid[] = {0x55, 0x04, 0x09};
140 return der::Input(oid);
141 }
142
137 der::Input TypeOrganizationNameOid() { 143 der::Input TypeOrganizationNameOid() {
138 // id-at-organizationName: 2.5.4.10 (RFC 5280) 144 // id-at-organizationName: 2.5.4.10 (RFC 5280)
139 static const uint8_t oid[] = {0x55, 0x04, 0x0a}; 145 static const uint8_t oid[] = {0x55, 0x04, 0x0a};
140 return der::Input(oid); 146 return der::Input(oid);
141 } 147 }
142 148
143 der::Input TypeOrganizationUnitNameOid() { 149 der::Input TypeOrganizationUnitNameOid() {
144 // id-at-organizationalUnitName: 2.5.4.11 (RFC 5280) 150 // id-at-organizationalUnitName: 2.5.4.11 (RFC 5280)
145 static const uint8_t oid[] = {0x55, 0x04, 0x0b}; 151 static const uint8_t oid[] = {0x55, 0x04, 0x0b};
146 return der::Input(oid); 152 return der::Input(oid);
(...skipping 22 matching lines...) Expand all
169 static const uint8_t oid[] = {0x55, 0x04, 0x2b}; 175 static const uint8_t oid[] = {0x55, 0x04, 0x2b};
170 return der::Input(oid); 176 return der::Input(oid);
171 } 177 }
172 178
173 der::Input TypeGenerationQualifierOid() { 179 der::Input TypeGenerationQualifierOid() {
174 // id-at-generationQualifier: 2.5.4.44 (RFC 5280) 180 // id-at-generationQualifier: 2.5.4.44 (RFC 5280)
175 static const uint8_t oid[] = {0x55, 0x04, 0x2c}; 181 static const uint8_t oid[] = {0x55, 0x04, 0x2c};
176 return der::Input(oid); 182 return der::Input(oid);
177 } 183 }
178 184
185 der::Input TypeDomainComponentOid() {
186 // dc (domainComponent): 0.9.2342.19200300.100.1.25 (RFC 4519)
187 static const uint8_t oid[] = {0x09, 0x92, 0x26, 0x89, 0x93,
188 0xF2, 0x2C, 0x64, 0x01, 0x19};
189 return der::Input(oid);
190 }
191
179 bool X509NameAttribute::ValueAsStringUnsafe(std::string* out) const { 192 bool X509NameAttribute::ValueAsStringUnsafe(std::string* out) const {
180 switch (value_tag) { 193 switch (value_tag) {
181 case der::kIA5String: 194 case der::kIA5String:
182 case der::kPrintableString: 195 case der::kPrintableString:
183 case der::kTeletexString: 196 case der::kTeletexString:
184 case der::kUtf8String: 197 case der::kUtf8String:
185 *out = value.AsString(); 198 *out = value.AsString();
186 return true; 199 return true;
187 case der::kUniversalString: 200 case der::kUniversalString:
188 return ConvertUniversalStringValue(value, out); 201 return ConvertUniversalStringValue(value, out);
189 case der::kBmpString: 202 case der::kBmpString:
190 return ConvertBmpStringValue(value, out); 203 return ConvertBmpStringValue(value, out);
191 default: 204 default:
192 NOTREACHED(); 205 NOTREACHED();
193 return false; 206 return false;
194 } 207 }
195 } 208 }
196 209
197 bool X509NameAttribute::AsRFC2253String(std::string* out) const { 210 bool X509NameAttribute::AsRFC2253String(std::string* out) const {
198 std::string type_string; 211 std::string type_string;
199 std::string value_string; 212 std::string value_string;
213 // TODO(mattm): Add streetAddress and domainComponent here?
200 if (type == TypeCommonNameOid()) { 214 if (type == TypeCommonNameOid()) {
201 type_string = "CN"; 215 type_string = "CN";
202 } else if (type == TypeSurnameOid()) { 216 } else if (type == TypeSurnameOid()) {
203 type_string = "SN"; 217 type_string = "SN";
204 } else if (type == TypeCountryNameOid()) { 218 } else if (type == TypeCountryNameOid()) {
205 type_string = "C"; 219 type_string = "C";
206 } else if (type == TypeLocalityNameOid()) { 220 } else if (type == TypeLocalityNameOid()) {
207 type_string = "L"; 221 type_string = "L";
208 } else if (type == TypeStateOrProvinceNameOid()) { 222 } else if (type == TypeStateOrProvinceNameOid()) {
209 type_string = "ST"; 223 type_string = "ST";
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 if (!rdns_string.empty()) 341 if (!rdns_string.empty())
328 rdns_string += ","; 342 rdns_string += ",";
329 rdns_string += rdn_string; 343 rdns_string += rdn_string;
330 } 344 }
331 345
332 *out = rdns_string; 346 *out = rdns_string;
333 return true; 347 return true;
334 } 348 }
335 349
336 } // namespace net 350 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698