OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/memory/scoped_ptr.h" | |
6 #include "crypto/ec_private_key.h" | |
7 #include "net/base/x509_util.h" | |
8 #include "net/base/x509_util_openssl.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace net { | |
12 | |
13 TEST(X509UtilOpenSSLTest, IsSupportedValidityRange) { | |
14 base::Time now = base::Time::Now(); | |
15 EXPECT_TRUE(x509_util::IsSupportedValidityRange(now, now)); | |
16 EXPECT_FALSE(x509_util::IsSupportedValidityRange( | |
17 now, now - base::TimeDelta::FromSeconds(1))); | |
18 | |
19 // See x509_util_openssl.cc to see how these were computed. | |
20 const int64 kDaysFromYear0001ToUnixEpoch = 719162; | |
21 const int64 kDaysFromUnixEpochToYear10000 = 2932896 + 1; | |
22 | |
23 // When computing too_old / too_late, add one day to account for | |
24 // possible leap seconds. | |
25 base::Time too_old = base::Time::UnixEpoch() - | |
26 base::TimeDelta::FromDays(kDaysFromYear0001ToUnixEpoch + 1); | |
27 | |
28 base::Time too_late = base::Time::UnixEpoch() + | |
29 base::TimeDelta::FromDays(kDaysFromUnixEpochToYear10000 + 1); | |
30 | |
31 EXPECT_FALSE(x509_util::IsSupportedValidityRange(too_old, too_old)); | |
32 EXPECT_FALSE(x509_util::IsSupportedValidityRange(too_old, now)); | |
33 | |
34 EXPECT_FALSE(x509_util::IsSupportedValidityRange(now, too_late)); | |
35 EXPECT_FALSE(x509_util::IsSupportedValidityRange(too_late, too_late)); | |
36 } | |
37 | |
38 // For OpenSSL, x509_util::CreateDomainBoundCertEC() is not yet implemented | |
39 // and should return false. This unit test ensures that a stub implementation | |
40 // is present. | |
41 TEST(X509UtilOpenSSLTest, CreateDomainBoundCertNotImplemented) { | |
42 std::string domain = "weborigin.com"; | |
43 base::Time now = base::Time::Now(); | |
44 scoped_ptr<crypto::ECPrivateKey> private_key( | |
45 crypto::ECPrivateKey::Create()); | |
46 std::string der_cert; | |
47 EXPECT_FALSE(x509_util::CreateDomainBoundCertEC( | |
48 private_key.get(), | |
49 domain, 1, | |
50 now, | |
51 now + base::TimeDelta::FromDays(1), | |
52 &der_cert)); | |
53 EXPECT_TRUE(der_cert.empty()); | |
54 | |
55 } | |
56 | |
57 } // namespace net | |
OLD | NEW |