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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 ASSERT_TRUE(expected_len <= sizeof(DigestType)); | 168 ASSERT_TRUE(expected_len <= sizeof(DigestType)); |
169 | 169 |
170 rv = test_cert_->ComputeDigest(algorithm, digest, sizeof(digest), | 170 rv = test_cert_->ComputeDigest(algorithm, digest, sizeof(digest), |
171 &digest_len); | 171 &digest_len); |
172 EXPECT_TRUE(rv); | 172 EXPECT_TRUE(rv); |
173 EXPECT_EQ(expected_len, digest_len); | 173 EXPECT_EQ(expected_len, digest_len); |
174 EXPECT_EQ(0, memcmp(digest, expected_digest, expected_len)); | 174 EXPECT_EQ(0, memcmp(digest, expected_digest, expected_len)); |
175 } | 175 } |
176 | 176 |
177 private: | 177 void TestCloningIdentity(const SSLIdentity& identity) { |
| 178 // Convert |identity| to PEM strings and create a new identity by converting |
| 179 // back from the string format. |
| 180 std::string priv_pem = identity.PrivateKeyToPEMString(); |
| 181 std::string publ_pem = identity.PublicKeyToPEMString(); |
| 182 std::string cert_pem = identity.certificate().ToPEMString(); |
| 183 std::unique_ptr<SSLIdentity> clone( |
| 184 SSLIdentity::FromPEMStrings(priv_pem, cert_pem)); |
| 185 EXPECT_TRUE(clone); |
| 186 |
| 187 // Make sure the clone is identical to the original. |
| 188 EXPECT_TRUE(identity == *clone); |
| 189 ASSERT_EQ(identity.certificate().CertificateExpirationTime(), |
| 190 clone->certificate().CertificateExpirationTime()); |
| 191 |
| 192 // At this point we are confident that the identities are identical. To be |
| 193 // extra sure, we compare PEM strings of the clone with the original. Note |
| 194 // that the PEM strings of two identities are not strictly guaranteed to be |
| 195 // equal (they describe structs whose members could be listed in a different |
| 196 // order, for example). But because the same function is used to produce |
| 197 // both PEMs, its a good enough bet that this comparison will work. If the |
| 198 // assumption stops holding in the future we can always remove this from the |
| 199 // unittest. |
| 200 std::string clone_priv_pem = clone->PrivateKeyToPEMString(); |
| 201 std::string clone_publ_pem = clone->PublicKeyToPEMString(); |
| 202 std::string clone_cert_pem = clone->certificate().ToPEMString(); |
| 203 ASSERT_EQ(priv_pem, clone_priv_pem); |
| 204 ASSERT_EQ(publ_pem, clone_publ_pem); |
| 205 ASSERT_EQ(cert_pem, clone_cert_pem); |
| 206 } |
| 207 |
| 208 protected: |
178 std::unique_ptr<SSLIdentity> identity_rsa1_; | 209 std::unique_ptr<SSLIdentity> identity_rsa1_; |
179 std::unique_ptr<SSLIdentity> identity_rsa2_; | 210 std::unique_ptr<SSLIdentity> identity_rsa2_; |
180 std::unique_ptr<SSLIdentity> identity_ecdsa1_; | 211 std::unique_ptr<SSLIdentity> identity_ecdsa1_; |
181 std::unique_ptr<SSLIdentity> identity_ecdsa2_; | 212 std::unique_ptr<SSLIdentity> identity_ecdsa2_; |
182 std::unique_ptr<rtc::SSLCertificate> test_cert_; | 213 std::unique_ptr<rtc::SSLCertificate> test_cert_; |
183 }; | 214 }; |
184 | 215 |
185 TEST_F(SSLIdentityTest, FixedDigestSHA1) { | 216 TEST_F(SSLIdentityTest, FixedDigestSHA1) { |
186 TestDigestForFixedCert(rtc::DIGEST_SHA_1, 20, kTestCertSha1); | 217 TestDigestForFixedCert(rtc::DIGEST_SHA_1, 20, kTestCertSha1); |
187 } | 218 } |
(...skipping 25 matching lines...) Expand all Loading... |
213 } | 244 } |
214 | 245 |
215 TEST_F(SSLIdentityTest, DigestSHA384) { | 246 TEST_F(SSLIdentityTest, DigestSHA384) { |
216 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); | 247 TestDigestForGeneratedCert(rtc::DIGEST_SHA_384, 48); |
217 } | 248 } |
218 | 249 |
219 TEST_F(SSLIdentityTest, DigestSHA512) { | 250 TEST_F(SSLIdentityTest, DigestSHA512) { |
220 TestDigestForGeneratedCert(rtc::DIGEST_SHA_512, 64); | 251 TestDigestForGeneratedCert(rtc::DIGEST_SHA_512, 64); |
221 } | 252 } |
222 | 253 |
| 254 TEST_F(SSLIdentityTest, IdentityComparison) { |
| 255 EXPECT_TRUE(*identity_rsa1_ == *identity_rsa1_); |
| 256 EXPECT_FALSE(*identity_rsa1_ == *identity_rsa2_); |
| 257 EXPECT_FALSE(*identity_rsa1_ == *identity_ecdsa1_); |
| 258 EXPECT_FALSE(*identity_rsa1_ == *identity_ecdsa2_); |
| 259 |
| 260 EXPECT_TRUE(*identity_rsa2_ == *identity_rsa2_); |
| 261 EXPECT_FALSE(*identity_rsa2_ == *identity_ecdsa1_); |
| 262 EXPECT_FALSE(*identity_rsa2_ == *identity_ecdsa2_); |
| 263 |
| 264 EXPECT_TRUE(*identity_ecdsa1_ == *identity_ecdsa1_); |
| 265 EXPECT_FALSE(*identity_ecdsa1_ == *identity_ecdsa2_); |
| 266 } |
| 267 |
223 TEST_F(SSLIdentityTest, FromPEMStringsRSA) { | 268 TEST_F(SSLIdentityTest, FromPEMStringsRSA) { |
| 269 // These PEM strings were created by generating an identity with |
| 270 // |SSLIdentity::Generate| and invoking |identity->PrivateKeyToPEMString()|, |
| 271 // |identity->PublicKeyToPEMString()| and |
| 272 // |identity->certificate().ToPEMString()|. If the crypto library is updated, |
| 273 // and the update changes the string form of the keys, these will have to be |
| 274 // updated too. |
224 static const char kRSA_PRIVATE_KEY_PEM[] = | 275 static const char kRSA_PRIVATE_KEY_PEM[] = |
225 "-----BEGIN RSA PRIVATE KEY-----\n" | 276 "-----BEGIN PRIVATE KEY-----\n" |
226 "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMYRkbhmI7kVA/rM\n" | 277 "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMQPqDStRlYeDpkX\n" |
227 "czsZ+6JDhDvnkF+vn6yCAGuRPV03zuRqZtDy4N4to7PZu9PjqrRl7nDMXrG3YG9y\n" | 278 "erRmv+a1naM8vSVSY0gG2plnrnofViWRW3MRqWC+020MsIj3hPZeSAnt/y/FL/nr\n" |
228 "rlIAZ72KjcKKFAJxQyAKLCIdawKRyp8RdK3LEySWEZb0AV58IadqPZDTNHHRX8dz\n" | 279 "4Ea7NXcwdRo1/1xEK7U/f/cjSg1aunyvHCHwcFcMr31HLFvHr0ZgcFwbgIuFLNEl\n" |
229 "5aTSMsbbkZ+C/OzTnbiMqLL/vg6jAgMBAAECgYAvgOs4FJcgvp+TuREx7YtiYVsH\n" | 280 "7kK5HMO9APz1ntUjek8BmBj8yMl9AgMBAAECgYA8FWBC5GcNtSBcIinkZyigF0A7\n" |
230 "mwQPTum2z/8VzWGwR8BBHBvIpVe1MbD/Y4seyI2aco/7UaisatSgJhsU46/9Y4fq\n" | 281 "6j081sa+J/uNz4xUuI257ZXM6biygUhhvuXK06/XoIULJfhyN0fAm1yb0HtNhiUs\n" |
231 "2TwXH9QANf4at4d9n/R6rzwpAJOpgwZgKvdQjkfrKTtgLV+/dawvpxUYkRH4JZM1\n" | 282 "kMOYeon6b8FqFaPjrQf7Gr9FMiIHXNK19uegTMKztXyPZoUWlX84X0iawY95x0Y3\n" |
232 "CVGukMfKNrSVH4Ap4QJBAOJmGV1ASPnB4r4nc99at7JuIJmd7fmuVUwUgYi4XgaR\n" | 283 "73f6P2rN2UOjlVVjAQJBAOKy3l2w3Zj2w0oAJox0eMwl+RxBNt1C42SHrob2mFUT\n" |
233 "WhScBsgYwZ/JoywdyZJgnbcrTDuVcWG56B3vXbhdpMsCQQDf9zeJrjnPZ3Cqm79y\n" | 284 "rytpVVYOasr8CoDI0kjacjI94sLum+buJoXXX6YTGO0CQQDdZwlYIEkoS3ftfxPa\n" |
234 "kdqANep0uwZciiNiWxsQrCHztywOvbFhdp8iYVFG9EK8DMY41Y5TxUwsHD+67zao\n" | 285 "Ai0YTBzAWvHJg0r8Gk/TkHo6IM+LSsZ9ZYUv/vBe4BKLw1I4hZ+bQvBiq+f8ROtk\n" |
235 "ZNqJAkEA1suLUP/GvL8IwuRneQd2tWDqqRQ/Td3qq03hP7e77XtF/buya3Ghclo5\n" | 286 "+TDRAkAPL3ghwoU1h+IRBO2QHwUwd6K2N9AbBi4BP+168O3HVSg4ujeTKigRLMzv\n" |
236 "54czUR89QyVfJEC6278nzA7n2h1uVQJAcG6mztNL6ja/dKZjYZye2CY44QjSlLo0\n" | 287 "T4R2iNt5bhfQgvdCgtVlxcWMdF8JAkBwDCg3eEdt5BuyjwBt8XH+/O4ED0KUWCTH\n" |
237 "MTgTSjdfg/28fFn2Jjtqf9Pi/X+50LWI/RcYMC2no606wRk9kyOuIQJBAK6VSAim\n" | 288 "x00k5dZlupsuhE5Fwe4QpzXg3gekwdnHjyCCQ/NCDHvgOMTkmhQxAkA9V03KRX9b\n" |
238 "1pOEjsYQn0X5KEIrz1G3bfCbB848Ime3U2/FWlCHMr6ch8kCZ5d1WUeJD3LbwMNG\n" | 289 "bhvEzY/fu8gEp+EzsER96/D79az5z1BaMGL5OPM2xHBPJATKlswnAa7Lp3QKGZGk\n" |
239 "UCXiYxSsu20QNVw=\n" | 290 "TxslfL18J71s\n" |
240 "-----END RSA PRIVATE KEY-----\n"; | 291 "-----END PRIVATE KEY-----\n"; |
241 | 292 static const char kRSA_PUBLIC_KEY_PEM[] = |
| 293 "-----BEGIN PUBLIC KEY-----\n" |
| 294 "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDED6g0rUZWHg6ZF3q0Zr/mtZ2j\n" |
| 295 "PL0lUmNIBtqZZ656H1YlkVtzEalgvtNtDLCI94T2XkgJ7f8vxS/56+BGuzV3MHUa\n" |
| 296 "Nf9cRCu1P3/3I0oNWrp8rxwh8HBXDK99Ryxbx69GYHBcG4CLhSzRJe5CuRzDvQD8\n" |
| 297 "9Z7VI3pPAZgY/MjJfQIDAQAB\n" |
| 298 "-----END PUBLIC KEY-----\n"; |
242 static const char kCERT_PEM[] = | 299 static const char kCERT_PEM[] = |
243 "-----BEGIN CERTIFICATE-----\n" | 300 "-----BEGIN CERTIFICATE-----\n" |
244 "MIIBmTCCAQKgAwIBAgIEbzBSAjANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZX\n" | 301 "MIIBnDCCAQWgAwIBAgIJAOEHLgeWYwrpMA0GCSqGSIb3DQEBCwUAMBAxDjAMBgNV\n" |
245 "ZWJSVEMwHhcNMTQwMTAyMTgyNDQ3WhcNMTQwMjAxMTgyNDQ3WjARMQ8wDQYDVQQD\n" | 302 "BAMMBXRlc3QxMB4XDTE2MDQyNDE4MTAyMloXDTE2MDUyNTE4MTAyMlowEDEOMAwG\n" |
246 "EwZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMYRkbhmI7kVA/rM\n" | 303 "A1UEAwwFdGVzdDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMQPqDStRlYe\n" |
247 "czsZ+6JDhDvnkF+vn6yCAGuRPV03zuRqZtDy4N4to7PZu9PjqrRl7nDMXrG3YG9y\n" | 304 "DpkXerRmv+a1naM8vSVSY0gG2plnrnofViWRW3MRqWC+020MsIj3hPZeSAnt/y/F\n" |
248 "rlIAZ72KjcKKFAJxQyAKLCIdawKRyp8RdK3LEySWEZb0AV58IadqPZDTNHHRX8dz\n" | 305 "L/nr4Ea7NXcwdRo1/1xEK7U/f/cjSg1aunyvHCHwcFcMr31HLFvHr0ZgcFwbgIuF\n" |
249 "5aTSMsbbkZ+C/OzTnbiMqLL/vg6jAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAUflI\n" | 306 "LNEl7kK5HMO9APz1ntUjek8BmBj8yMl9AgMBAAEwDQYJKoZIhvcNAQELBQADgYEA\n" |
250 "VUe5Krqf5RVa5C3u/UTAOAUJBiDS3VANTCLBxjuMsvqOG0WvaYWP3HYPgrz0jXK2\n" | 307 "C3ehaZFl+oEYN069C2ht/gMzuC77L854RF/x7xRtNZzkcg9TVgXXdM3auUvJi8dx\n" |
251 "LJE/mGw3MyFHEqi81jh95J+ypl6xKW6Rm8jKLR87gUvCaVYn/Z4/P3AqcQTB7wOv\n" | 308 "yTpU3ixErjQvoZew5ngXTEvTY8BSQUijJEaLWh8n6NDKRbEGTdAk8nPAmq9hdCFq\n" |
252 "UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n" | 309 "e3UkexqNHm3g/VxG4NUC1Y+w29ai0/Rgh+VvgbDwK+Q=\n" |
253 "-----END CERTIFICATE-----\n"; | 310 "-----END CERTIFICATE-----\n"; |
254 | 311 |
255 std::unique_ptr<SSLIdentity> identity( | 312 std::unique_ptr<SSLIdentity> identity( |
256 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 313 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
257 EXPECT_TRUE(identity); | 314 EXPECT_TRUE(identity); |
| 315 EXPECT_EQ(kRSA_PRIVATE_KEY_PEM, identity->PrivateKeyToPEMString()); |
| 316 EXPECT_EQ(kRSA_PUBLIC_KEY_PEM, identity->PublicKeyToPEMString()); |
258 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 317 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
259 } | 318 } |
260 | 319 |
261 TEST_F(SSLIdentityTest, FromPEMStringsEC) { | 320 TEST_F(SSLIdentityTest, FromPEMStringsEC) { |
262 static const char kRSA_PRIVATE_KEY_PEM[] = | 321 // These PEM strings were created by generating an identity with |
263 "-----BEGIN EC PRIVATE KEY-----\n" | 322 // |SSLIdentity::Generate| and invoking |identity->PrivateKeyToPEMString()|, |
264 "MHcCAQEEIKkIztWLPbs4Y2zWv7VW2Ov4is2ifleCuPgRB8fRv3IkoAoGCCqGSM49\n" | 323 // |identity->PublicKeyToPEMString()| and |
265 "AwEHoUQDQgAEDPV33NrhSdhg9cBRkUWUXnVMXc3h17i9ARbSmNgminKcBXb8/y8L\n" | 324 // |identity->certificate().ToPEMString()|. If the crypto library is updated, |
266 "A76cMWQPPM0ybHO8OS7ZVg2U/m+TwE1M2g==\n" | 325 // and the update changes the string form of the keys, these will have to be |
267 "-----END EC PRIVATE KEY-----\n"; | 326 // updated too. |
| 327 static const char kECDSA_PRIVATE_KEY_PEM[] = |
| 328 "-----BEGIN PRIVATE KEY-----\n" |
| 329 "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/AkEA2hklq7dQ2rN\n" |
| 330 "ZxYL6hOUACL4pn7P4FYlA3ZQhIChRANCAAR7YgdO3utP/8IqVRq8G4VZKreMAxeN\n" |
| 331 "rUa12twthv4uFjuHAHa9D9oyAjncmn+xvZZRyVmKrA56jRzENcEEHoAg\n" |
| 332 "-----END PRIVATE KEY-----\n"; |
| 333 static const char kECDSA_PUBLIC_KEY_PEM[] = |
| 334 "-----BEGIN PUBLIC KEY-----\n" |
| 335 "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEe2IHTt7rT//CKlUavBuFWSq3jAMX\n" |
| 336 "ja1GtdrcLYb+LhY7hwB2vQ/aMgI53Jp/sb2WUclZiqwOeo0cxDXBBB6AIA==\n" |
| 337 "-----END PUBLIC KEY-----\n"; |
268 static const char kCERT_PEM[] = | 338 static const char kCERT_PEM[] = |
269 "-----BEGIN CERTIFICATE-----\n" | 339 "-----BEGIN CERTIFICATE-----\n" |
270 "MIIB0jCCAXmgAwIBAgIJAMCjpFt9t6LMMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\n" | 340 "MIIBFDCBu6ADAgECAgkArpkxjw62sW4wCgYIKoZIzj0EAwIwEDEOMAwGA1UEAwwF\n" |
271 "AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\n" | 341 "dGVzdDMwHhcNMTYwNDI0MTgxNDM4WhcNMTYwNTI1MTgxNDM4WjAQMQ4wDAYDVQQD\n" |
272 "aXRzIFB0eSBMdGQwIBcNMTUwNjMwMTMwMTIyWhgPMjI4OTA0MTMxMzAxMjJaMEUx\n" | 342 "DAV0ZXN0MzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHtiB07e60//wipVGrwb\n" |
273 "CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\n" | 343 "hVkqt4wDF42tRrXa3C2G/i4WO4cAdr0P2jICOdyaf7G9llHJWYqsDnqNHMQ1wQQe\n" |
274 "cm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQM\n" | 344 "gCAwCgYIKoZIzj0EAwIDSAAwRQIhANyreQ/K5yuPPpirsd0e/4WGLHou6bIOSQks\n" |
275 "9Xfc2uFJ2GD1wFGRRZRedUxdzeHXuL0BFtKY2CaKcpwFdvz/LwsDvpwxZA88zTJs\n" | 345 "DYzo56NmAiAKOr3u8ol3LmygbUCwEvtWrS8QcJDygxHPACo99hkekw==\n" |
276 "c7w5LtlWDZT+b5PATUzao1AwTjAdBgNVHQ4EFgQUYHq6nxNNIE832ZmaHc/noODO\n" | |
277 "rtAwHwYDVR0jBBgwFoAUYHq6nxNNIE832ZmaHc/noODOrtAwDAYDVR0TBAUwAwEB\n" | |
278 "/zAKBggqhkjOPQQDAgNHADBEAiAQRojsTyZG0BlKoU7gOt5h+yAMLl2cxmDtOIQr\n" | |
279 "GWP/PwIgJynB4AUDsPT0DWmethOXYijB5sY5UPd9DvgmiS/Mr6s=\n" | |
280 "-----END CERTIFICATE-----\n"; | 346 "-----END CERTIFICATE-----\n"; |
281 | 347 |
282 std::unique_ptr<SSLIdentity> identity( | 348 std::unique_ptr<SSLIdentity> identity( |
283 SSLIdentity::FromPEMStrings(kRSA_PRIVATE_KEY_PEM, kCERT_PEM)); | 349 SSLIdentity::FromPEMStrings(kECDSA_PRIVATE_KEY_PEM, kCERT_PEM)); |
284 EXPECT_TRUE(identity); | 350 EXPECT_TRUE(identity); |
| 351 EXPECT_EQ(kECDSA_PRIVATE_KEY_PEM, identity->PrivateKeyToPEMString()); |
| 352 EXPECT_EQ(kECDSA_PUBLIC_KEY_PEM, identity->PublicKeyToPEMString()); |
285 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); | 353 EXPECT_EQ(kCERT_PEM, identity->certificate().ToPEMString()); |
286 } | 354 } |
287 | 355 |
| 356 TEST_F(SSLIdentityTest, CloneIdentityRSA) { |
| 357 TestCloningIdentity(*identity_rsa1_); |
| 358 TestCloningIdentity(*identity_rsa2_); |
| 359 } |
| 360 |
| 361 TEST_F(SSLIdentityTest, CloneIdentityECDSA) { |
| 362 TestCloningIdentity(*identity_ecdsa1_); |
| 363 TestCloningIdentity(*identity_ecdsa2_); |
| 364 } |
| 365 |
288 TEST_F(SSLIdentityTest, PemDerConversion) { | 366 TEST_F(SSLIdentityTest, PemDerConversion) { |
289 std::string der; | 367 std::string der; |
290 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); | 368 EXPECT_TRUE(SSLIdentity::PemToDer("CERTIFICATE", kTestCertificate, &der)); |
291 | 369 |
292 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( | 370 EXPECT_EQ(kTestCertificate, SSLIdentity::DerToPem( |
293 "CERTIFICATE", | 371 "CERTIFICATE", |
294 reinterpret_cast<const unsigned char*>(der.data()), der.length())); | 372 reinterpret_cast<const unsigned char*>(der.data()), der.length())); |
295 } | 373 } |
296 | 374 |
297 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { | 375 TEST_F(SSLIdentityTest, GetSignatureDigestAlgorithm) { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 } | 487 } |
410 }; | 488 }; |
411 | 489 |
412 TEST_F(SSLIdentityExpirationTest, TestASN1TimeToSec) { | 490 TEST_F(SSLIdentityExpirationTest, TestASN1TimeToSec) { |
413 TestASN1TimeToSec(); | 491 TestASN1TimeToSec(); |
414 } | 492 } |
415 | 493 |
416 TEST_F(SSLIdentityExpirationTest, TestExpireTime) { | 494 TEST_F(SSLIdentityExpirationTest, TestExpireTime) { |
417 TestExpireTime(500); | 495 TestExpireTime(500); |
418 } | 496 } |
OLD | NEW |