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 |