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 | |
191 TEST_F(SSLIdentityTest, FixedDigestSHA224) { | 188 TEST_F(SSLIdentityTest, FixedDigestSHA224) { |
192 #endif | |
193 TestDigestForFixedCert(rtc::DIGEST_SHA_224, 28, kTestCertSha224); | 189 TestDigestForFixedCert(rtc::DIGEST_SHA_224, 28, kTestCertSha224); |
194 } | 190 } |
195 | 191 |
196 TEST_F(SSLIdentityTest, FixedDigestSHA256) { | 192 TEST_F(SSLIdentityTest, FixedDigestSHA256) { |
197 TestDigestForFixedCert(rtc::DIGEST_SHA_256, 32, kTestCertSha256); | 193 TestDigestForFixedCert(rtc::DIGEST_SHA_256, 32, kTestCertSha256); |
198 } | 194 } |
199 | 195 |
200 TEST_F(SSLIdentityTest, FixedDigestSHA384) { | 196 TEST_F(SSLIdentityTest, FixedDigestSHA384) { |
201 TestDigestForFixedCert(rtc::DIGEST_SHA_384, 48, kTestCertSha384); | 197 TestDigestForFixedCert(rtc::DIGEST_SHA_384, 48, kTestCertSha384); |
202 } | 198 } |
203 | 199 |
204 TEST_F(SSLIdentityTest, FixedDigestSHA512) { | 200 TEST_F(SSLIdentityTest, FixedDigestSHA512) { |
205 TestDigestForFixedCert(rtc::DIGEST_SHA_512, 64, kTestCertSha512); | 201 TestDigestForFixedCert(rtc::DIGEST_SHA_512, 64, kTestCertSha512); |
206 } | 202 } |
207 | 203 |
208 // HASH_AlgSHA224 is not supported in the chromium linux build. | 204 // HASH_AlgSHA224 is not supported in the chromium linux build. |
209 #if SSL_USE_NSS | |
210 TEST_F(SSLIdentityTest, DISABLED_DigestSHA224) { | |
211 #else | |
212 TEST_F(SSLIdentityTest, DigestSHA224) { | 205 TEST_F(SSLIdentityTest, DigestSHA224) { |
213 #endif | |
214 TestDigestForGeneratedCert(rtc::DIGEST_SHA_224, 28); | 206 TestDigestForGeneratedCert(rtc::DIGEST_SHA_224, 28); |
215 } | 207 } |
216 | 208 |
217 TEST_F(SSLIdentityTest, DigestSHA256) { | 209 TEST_F(SSLIdentityTest, DigestSHA256) { |
218 TestDigestForGeneratedCert(rtc::DIGEST_SHA_256, 32); | 210 TestDigestForGeneratedCert(rtc::DIGEST_SHA_256, 32); |
219 } | 211 } |
220 | 212 |
221 TEST_F(SSLIdentityTest, DigestSHA384) { | 213 TEST_F(SSLIdentityTest, DigestSHA384) { |
222 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); | 214 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); |
223 } | 215 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 "LJE/mGw3MyFHEqi81jh95J+ypl6xKW6Rm8jKLR87gUvCaVYn/Z4/P3AqcQTB7wOv\n" | 249 "LJE/mGw3MyFHEqi81jh95J+ypl6xKW6Rm8jKLR87gUvCaVYn/Z4/P3AqcQTB7wOv\n" |
258 "UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n" | 250 "UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n" |
259 "-----END CERTIFICATE-----\n"; | 251 "-----END CERTIFICATE-----\n"; |
260 | 252 |
261 rtc::scoped_ptr<SSLIdentity> identity( | 253 rtc::scoped_ptr<SSLIdentity> identity( |
262 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 254 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
263 EXPECT_TRUE(identity); | 255 EXPECT_TRUE(identity); |
264 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 256 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
265 } | 257 } |
266 | 258 |
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). | |
272 TEST_F(SSLIdentityTest, FromPEMStringsEC) { | 259 TEST_F(SSLIdentityTest, FromPEMStringsEC) { |
273 static const char kRSA_PRIVATE_KEY_PEM[] = | 260 static const char kRSA_PRIVATE_KEY_PEM[] = |
274 "-----BEGIN EC PRIVATE KEY-----\n" | 261 "-----BEGIN EC PRIVATE KEY-----\n" |
275 "MHcCAQEEIKkIztWLPbs4Y2zWv7VW2Ov4is2ifleCuPgRB8fRv3IkoAoGCCqGSM49\n" | 262 "MHcCAQEEIKkIztWLPbs4Y2zWv7VW2Ov4is2ifleCuPgRB8fRv3IkoAoGCCqGSM49\n" |
276 "AwEHoUQDQgAEDPV33NrhSdhg9cBRkUWUXnVMXc3h17i9ARbSmNgminKcBXb8/y8L\n" | 263 "AwEHoUQDQgAEDPV33NrhSdhg9cBRkUWUXnVMXc3h17i9ARbSmNgminKcBXb8/y8L\n" |
277 "A76cMWQPPM0ybHO8OS7ZVg2U/m+TwE1M2g==\n" | 264 "A76cMWQPPM0ybHO8OS7ZVg2U/m+TwE1M2g==\n" |
278 "-----END EC PRIVATE KEY-----\n"; | 265 "-----END EC PRIVATE KEY-----\n"; |
279 static const char kCERT_PEM[] = | 266 static const char kCERT_PEM[] = |
280 "-----BEGIN CERTIFICATE-----\n" | 267 "-----BEGIN CERTIFICATE-----\n" |
281 "MIIB0jCCAXmgAwIBAgIJAMCjpFt9t6LMMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\n" | 268 "MIIB0jCCAXmgAwIBAgIJAMCjpFt9t6LMMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\n" |
282 "AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\n" | 269 "AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\n" |
283 "aXRzIFB0eSBMdGQwIBcNMTUwNjMwMTMwMTIyWhgPMjI4OTA0MTMxMzAxMjJaMEUx\n" | 270 "aXRzIFB0eSBMdGQwIBcNMTUwNjMwMTMwMTIyWhgPMjI4OTA0MTMxMzAxMjJaMEUx\n" |
284 "CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\n" | 271 "CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\n" |
285 "cm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQM\n" | 272 "cm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQM\n" |
286 "9Xfc2uFJ2GD1wFGRRZRedUxdzeHXuL0BFtKY2CaKcpwFdvz/LwsDvpwxZA88zTJs\n" | 273 "9Xfc2uFJ2GD1wFGRRZRedUxdzeHXuL0BFtKY2CaKcpwFdvz/LwsDvpwxZA88zTJs\n" |
287 "c7w5LtlWDZT+b5PATUzao1AwTjAdBgNVHQ4EFgQUYHq6nxNNIE832ZmaHc/noODO\n" | 274 "c7w5LtlWDZT+b5PATUzao1AwTjAdBgNVHQ4EFgQUYHq6nxNNIE832ZmaHc/noODO\n" |
288 "rtAwHwYDVR0jBBgwFoAUYHq6nxNNIE832ZmaHc/noODOrtAwDAYDVR0TBAUwAwEB\n" | 275 "rtAwHwYDVR0jBBgwFoAUYHq6nxNNIE832ZmaHc/noODOrtAwDAYDVR0TBAUwAwEB\n" |
289 "/zAKBggqhkjOPQQDAgNHADBEAiAQRojsTyZG0BlKoU7gOt5h+yAMLl2cxmDtOIQr\n" | 276 "/zAKBggqhkjOPQQDAgNHADBEAiAQRojsTyZG0BlKoU7gOt5h+yAMLl2cxmDtOIQr\n" |
290 "GWP/PwIgJynB4AUDsPT0DWmethOXYijB5sY5UPd9DvgmiS/Mr6s=\n" | 277 "GWP/PwIgJynB4AUDsPT0DWmethOXYijB5sY5UPd9DvgmiS/Mr6s=\n" |
291 "-----END CERTIFICATE-----\n"; | 278 "-----END CERTIFICATE-----\n"; |
292 | 279 |
293 rtc::scoped_ptr<SSLIdentity> identity( | 280 rtc::scoped_ptr<SSLIdentity> identity( |
294 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 281 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
295 EXPECT_TRUE(identity); | 282 EXPECT_TRUE(identity); |
296 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 283 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
297 } | 284 } |
298 #endif | |
299 | 285 |
300 TEST_F(SSLIdentityTest, PemDerConversion) { | 286 TEST_F(SSLIdentityTest, PemDerConversion) { |
301 std::string der; | 287 std::string der; |
302 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); | 288 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); |
303 | 289 |
304 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( | 290 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( |
305 "CERTIFICATE", | 291 "CERTIFICATE", |
306 reinterpret_cast<const unsigned char*>(der.data()), der.length())); | 292 reinterpret_cast<const unsigned char*>(der.data()), der.length())); |
307 } | 293 } |
308 | 294 |
309 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { | 295 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { |
310 TestGetSignatureDigestAlgorithm(); | 296 TestGetSignatureDigestAlgorithm(); |
311 } | 297 } |
OLD | NEW |