Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/signature_algorithm.h" | 5 #include "net/cert/internal/signature_algorithm.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "net/der/input.h" | 9 #include "net/der/input.h" |
| 10 #include "net/der/parser.h" | 10 #include "net/der/parser.h" |
| 11 | 11 |
| 12 namespace net { | 12 namespace net { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 // From RFC 3279 section 2.2.1: | 16 // From RFC 3279 section 2.2.1: |
| 17 // sha-1WithRSAEncryption OBJECT IDENTIFIER ::= { | 17 // sha-1WithRSAEncryption OBJECT IDENTIFIER ::= { |
| 18 // iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) | 18 // iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) |
| 19 // pkcs-1(1) 5 } | 19 // pkcs-1(1) 5 } |
| 20 // In dotted notation: 1.2.840.113549.1.1.5 | 20 // In dotted notation: 1.2.840.113549.1.1.5 |
| 21 const uint8_t kOidSha1WithRsaEncryption[] = | 21 const uint8_t kOidSha1WithRsaEncryption[] = |
| 22 {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05}; | 22 {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05}; |
| 23 | 23 |
| 24 // sha1WithRSASignature is a deprecated equivalent of | |
| 25 // sha-1WithRSAEncryption. | |
| 26 // | |
| 27 // It originates from the NIST Open Systems Environment (OSE) | |
| 28 // Implementor's Workshop (OIW). | |
| 29 // | |
| 30 // It is supported for compatibility with Microsoft products such as | |
| 31 // Fiddler, which depend on certificates containing this OID. | |
|
Ryan Sleevi
2015/07/06 14:41:08
Fiddler is not a Microsoft product.
// It is supp
eroman
2015/07/06 22:53:25
Done.
| |
| 32 // | |
| 33 // See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1042479 | |
| 34 // | |
| 35 // In dotted notation: 1.3.14.3.2.29 | |
| 36 const uint8_t kOidSha1WithRsaSignature[] = {0x2b, 0x0e, 0x03, 0x02, 0x1d}; | |
| 37 | |
| 24 // From RFC 4055 section 6: | 38 // From RFC 4055 section 6: |
| 25 // pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) | 39 // pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) |
| 26 // us(840) rsadsi(113549) pkcs(1) 1 } | 40 // us(840) rsadsi(113549) pkcs(1) 1 } |
| 27 | 41 |
| 28 // From RFC 4055 section 5: | 42 // From RFC 4055 section 5: |
| 29 // sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 } | 43 // sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 } |
| 30 // In dotted notation: 1.2.840.113549.1.1.11 | 44 // In dotted notation: 1.2.840.113549.1.1.11 |
| 31 const uint8_t kOidSha256WithRsaEncryption[] = | 45 const uint8_t kOidSha256WithRsaEncryption[] = |
| 32 {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b}; | 46 {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b}; |
| 33 | 47 |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 276 | 290 |
| 277 if (oid.Equals(der::Input(kOidEcdsaWithSha384))) | 291 if (oid.Equals(der::Input(kOidEcdsaWithSha384))) |
| 278 return ParseEcdsa(DigestAlgorithm::Sha384, params, this); | 292 return ParseEcdsa(DigestAlgorithm::Sha384, params, this); |
| 279 | 293 |
| 280 if (oid.Equals(der::Input(kOidEcdsaWithSha512))) | 294 if (oid.Equals(der::Input(kOidEcdsaWithSha512))) |
| 281 return ParseEcdsa(DigestAlgorithm::Sha512, params, this); | 295 return ParseEcdsa(DigestAlgorithm::Sha512, params, this); |
| 282 | 296 |
| 283 if (oid.Equals(der::Input(kOidRsaSsaPss))) | 297 if (oid.Equals(der::Input(kOidRsaSsaPss))) |
| 284 return ParseRsaPss(params, this); | 298 return ParseRsaPss(params, this); |
| 285 | 299 |
| 300 if (oid.Equals(der::Input(kOidSha1WithRsaSignature))) | |
| 301 return ParseRsaPkcs1(DigestAlgorithm::Sha1, params, this); | |
| 302 | |
| 286 return false; // Unsupported OID. | 303 return false; // Unsupported OID. |
| 287 } | 304 } |
| 288 | 305 |
| 289 void SignatureAlgorithm::AssignRsaPkcs1(DigestAlgorithm digest) { | 306 void SignatureAlgorithm::AssignRsaPkcs1(DigestAlgorithm digest) { |
| 290 algorithm_ = SignatureAlgorithmId::RsaPkcs1; | 307 algorithm_ = SignatureAlgorithmId::RsaPkcs1; |
| 291 digest_ = digest; | 308 digest_ = digest; |
| 292 params_.reset(); | 309 params_.reset(); |
| 293 } | 310 } |
| 294 | 311 |
| 295 void SignatureAlgorithm::AssignEcdsa(DigestAlgorithm digest) { | 312 void SignatureAlgorithm::AssignEcdsa(DigestAlgorithm digest) { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 328 return nullptr; | 345 return nullptr; |
| 329 } | 346 } |
| 330 | 347 |
| 331 void SignatureAlgorithm::AssignInvalid() { | 348 void SignatureAlgorithm::AssignInvalid() { |
| 332 algorithm_ = static_cast<SignatureAlgorithmId>(-1); | 349 algorithm_ = static_cast<SignatureAlgorithmId>(-1); |
| 333 digest_ = static_cast<DigestAlgorithm>(-1); | 350 digest_ = static_cast<DigestAlgorithm>(-1); |
| 334 params_.reset(); | 351 params_.reset(); |
| 335 } | 352 } |
| 336 | 353 |
| 337 } // namespace net | 354 } // namespace net |
| OLD | NEW |