| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2011 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 rtc::scoped_ptr<SSLIdentity> identity_ecdsa1_; | 178 rtc::scoped_ptr<SSLIdentity> identity_ecdsa1_; |
| 179 rtc::scoped_ptr<SSLIdentity> identity_ecdsa2_; | 179 rtc::scoped_ptr<SSLIdentity> identity_ecdsa2_; |
| 180 rtc::scoped_ptr<rtc::SSLCertificate> test_cert_; | 180 rtc::scoped_ptr<rtc::SSLCertificate> test_cert_; |
| 181 }; | 181 }; |
| 182 | 182 |
| 183 TEST_F(SSLIdentityTest, FixedDigestSHA1) { | 183 TEST_F(SSLIdentityTest, FixedDigestSHA1) { |
| 184 TestDigestForFixedCert(rtc::DIGEST_SHA_1, 20, kTestCertSha1); | 184 TestDigestForFixedCert(rtc::DIGEST_SHA_1, 20, kTestCertSha1); |
| 185 } | 185 } |
| 186 | 186 |
| 187 // HASH_AlgSHA224 is not supported in the chromium linux build. | 187 // HASH_AlgSHA224 is not supported in the chromium linux build. |
| 188 #if SSL_USE_NSS |
| 189 TEST_F(SSLIdentityTest, DISABLED_FixedDigestSHA224) { |
| 190 #else |
| 188 TEST_F(SSLIdentityTest, FixedDigestSHA224) { | 191 TEST_F(SSLIdentityTest, FixedDigestSHA224) { |
| 192 #endif |
| 189 TestDigestForFixedCert(rtc::DIGEST_SHA_224, 28, kTestCertSha224); | 193 TestDigestForFixedCert(rtc::DIGEST_SHA_224, 28, kTestCertSha224); |
| 190 } | 194 } |
| 191 | 195 |
| 192 TEST_F(SSLIdentityTest, FixedDigestSHA256) { | 196 TEST_F(SSLIdentityTest, FixedDigestSHA256) { |
| 193 TestDigestForFixedCert(rtc::DIGEST_SHA_256, 32, kTestCertSha256); | 197 TestDigestForFixedCert(rtc::DIGEST_SHA_256, 32, kTestCertSha256); |
| 194 } | 198 } |
| 195 | 199 |
| 196 TEST_F(SSLIdentityTest, FixedDigestSHA384) { | 200 TEST_F(SSLIdentityTest, FixedDigestSHA384) { |
| 197 TestDigestForFixedCert(rtc::DIGEST_SHA_384, 48, kTestCertSha384); | 201 TestDigestForFixedCert(rtc::DIGEST_SHA_384, 48, kTestCertSha384); |
| 198 } | 202 } |
| 199 | 203 |
| 200 TEST_F(SSLIdentityTest, FixedDigestSHA512) { | 204 TEST_F(SSLIdentityTest, FixedDigestSHA512) { |
| 201 TestDigestForFixedCert(rtc::DIGEST_SHA_512, 64, kTestCertSha512); | 205 TestDigestForFixedCert(rtc::DIGEST_SHA_512, 64, kTestCertSha512); |
| 202 } | 206 } |
| 203 | 207 |
| 204 // HASH_AlgSHA224 is not supported in the chromium linux build. | 208 // HASH_AlgSHA224 is not supported in the chromium linux build. |
| 209 #if SSL_USE_NSS |
| 210 TEST_F(SSLIdentityTest, DISABLED_DigestSHA224) { |
| 211 #else |
| 205 TEST_F(SSLIdentityTest, DigestSHA224) { | 212 TEST_F(SSLIdentityTest, DigestSHA224) { |
| 213 #endif |
| 206 TestDigestForGeneratedCert(rtc::DIGEST_SHA_224, 28); | 214 TestDigestForGeneratedCert(rtc::DIGEST_SHA_224, 28); |
| 207 } | 215 } |
| 208 | 216 |
| 209 TEST_F(SSLIdentityTest, DigestSHA256) { | 217 TEST_F(SSLIdentityTest, DigestSHA256) { |
| 210 TestDigestForGeneratedCert(rtc::DIGEST_SHA_256, 32); | 218 TestDigestForGeneratedCert(rtc::DIGEST_SHA_256, 32); |
| 211 } | 219 } |
| 212 | 220 |
| 213 TEST_F(SSLIdentityTest, DigestSHA384) { | 221 TEST_F(SSLIdentityTest, DigestSHA384) { |
| 214 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); | 222 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); |
| 215 } | 223 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 "LJE/mGw3MyFHEqi81jh95J+ypl6xKW6Rm8jKLR87gUvCaVYn/Z4/P3AqcQTB7wOv\n" | 257 "LJE/mGw3MyFHEqi81jh95J+ypl6xKW6Rm8jKLR87gUvCaVYn/Z4/P3AqcQTB7wOv\n" |
| 250 "UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n" | 258 "UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n" |
| 251 "-----END CERTIFICATE-----\n"; | 259 "-----END CERTIFICATE-----\n"; |
| 252 | 260 |
| 253 rtc::scoped_ptr<SSLIdentity> identity( | 261 rtc::scoped_ptr<SSLIdentity> identity( |
| 254 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 262 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
| 255 EXPECT_TRUE(identity); | 263 EXPECT_TRUE(identity); |
| 256 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 264 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
| 257 } | 265 } |
| 258 | 266 |
| 267 #if SSL_USE_OPENSSL |
| 268 // This will not work on NSS as PK11_ImportDERPrivateKeyInfoAndReturnKey is not |
| 269 // ready for EC keys. Furthermore, NSSIdentity::FromPEMStrings is currently |
| 270 // hardwired for RSA (the header matching via kPemTypeRsaPrivateKey needs |
| 271 // trivial generalization). |
| 259 TEST_F(SSLIdentityTest, FromPEMStringsEC) { | 272 TEST_F(SSLIdentityTest, FromPEMStringsEC) { |
| 260 static const char kRSA_PRIVATE_KEY_PEM[] = | 273 static const char kRSA_PRIVATE_KEY_PEM[] = |
| 261 "-----BEGIN EC PRIVATE KEY-----\n" | 274 "-----BEGIN EC PRIVATE KEY-----\n" |
| 262 "MHcCAQEEIKkIztWLPbs4Y2zWv7VW2Ov4is2ifleCuPgRB8fRv3IkoAoGCCqGSM49\n" | 275 "MHcCAQEEIKkIztWLPbs4Y2zWv7VW2Ov4is2ifleCuPgRB8fRv3IkoAoGCCqGSM49\n" |
| 263 "AwEHoUQDQgAEDPV33NrhSdhg9cBRkUWUXnVMXc3h17i9ARbSmNgminKcBXb8/y8L\n" | 276 "AwEHoUQDQgAEDPV33NrhSdhg9cBRkUWUXnVMXc3h17i9ARbSmNgminKcBXb8/y8L\n" |
| 264 "A76cMWQPPM0ybHO8OS7ZVg2U/m+TwE1M2g==\n" | 277 "A76cMWQPPM0ybHO8OS7ZVg2U/m+TwE1M2g==\n" |
| 265 "-----END EC PRIVATE KEY-----\n"; | 278 "-----END EC PRIVATE KEY-----\n"; |
| 266 static const char kCERT_PEM[] = | 279 static const char kCERT_PEM[] = |
| 267 "-----BEGIN CERTIFICATE-----\n" | 280 "-----BEGIN CERTIFICATE-----\n" |
| 268 "MIIB0jCCAXmgAwIBAgIJAMCjpFt9t6LMMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\n" | 281 "MIIB0jCCAXmgAwIBAgIJAMCjpFt9t6LMMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\n" |
| 269 "AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\n" | 282 "AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\n" |
| 270 "aXRzIFB0eSBMdGQwIBcNMTUwNjMwMTMwMTIyWhgPMjI4OTA0MTMxMzAxMjJaMEUx\n" | 283 "aXRzIFB0eSBMdGQwIBcNMTUwNjMwMTMwMTIyWhgPMjI4OTA0MTMxMzAxMjJaMEUx\n" |
| 271 "CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\n" | 284 "CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\n" |
| 272 "cm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQM\n" | 285 "cm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQM\n" |
| 273 "9Xfc2uFJ2GD1wFGRRZRedUxdzeHXuL0BFtKY2CaKcpwFdvz/LwsDvpwxZA88zTJs\n" | 286 "9Xfc2uFJ2GD1wFGRRZRedUxdzeHXuL0BFtKY2CaKcpwFdvz/LwsDvpwxZA88zTJs\n" |
| 274 "c7w5LtlWDZT+b5PATUzao1AwTjAdBgNVHQ4EFgQUYHq6nxNNIE832ZmaHc/noODO\n" | 287 "c7w5LtlWDZT+b5PATUzao1AwTjAdBgNVHQ4EFgQUYHq6nxNNIE832ZmaHc/noODO\n" |
| 275 "rtAwHwYDVR0jBBgwFoAUYHq6nxNNIE832ZmaHc/noODOrtAwDAYDVR0TBAUwAwEB\n" | 288 "rtAwHwYDVR0jBBgwFoAUYHq6nxNNIE832ZmaHc/noODOrtAwDAYDVR0TBAUwAwEB\n" |
| 276 "/zAKBggqhkjOPQQDAgNHADBEAiAQRojsTyZG0BlKoU7gOt5h+yAMLl2cxmDtOIQr\n" | 289 "/zAKBggqhkjOPQQDAgNHADBEAiAQRojsTyZG0BlKoU7gOt5h+yAMLl2cxmDtOIQr\n" |
| 277 "GWP/PwIgJynB4AUDsPT0DWmethOXYijB5sY5UPd9DvgmiS/Mr6s=\n" | 290 "GWP/PwIgJynB4AUDsPT0DWmethOXYijB5sY5UPd9DvgmiS/Mr6s=\n" |
| 278 "-----END CERTIFICATE-----\n"; | 291 "-----END CERTIFICATE-----\n"; |
| 279 | 292 |
| 280 rtc::scoped_ptr<SSLIdentity> identity( | 293 rtc::scoped_ptr<SSLIdentity> identity( |
| 281 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 294 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
| 282 EXPECT_TRUE(identity); | 295 EXPECT_TRUE(identity); |
| 283 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 296 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
| 284 } | 297 } |
| 298 #endif |
| 285 | 299 |
| 286 TEST_F(SSLIdentityTest, PemDerConversion) { | 300 TEST_F(SSLIdentityTest, PemDerConversion) { |
| 287 std::string der; | 301 std::string der; |
| 288 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); | 302 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); |
| 289 | 303 |
| 290 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( | 304 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( |
| 291 "CERTIFICATE", | 305 "CERTIFICATE", |
| 292 reinterpret_cast<const unsigned char*>(der.data()), der.length())); | 306 reinterpret_cast<const unsigned char*>(der.data()), der.length())); |
| 293 } | 307 } |
| 294 | 308 |
| 295 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { | 309 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { |
| 296 TestGetSignatureDigestAlgorithm(); | 310 TestGetSignatureDigestAlgorithm(); |
| 297 } | 311 } |
| OLD | NEW |