Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: webrtc/base/sslidentity_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698