OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2015 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 |
11 #include "webrtc/base/rtccertificate.h" | 11 #include "webrtc/base/rtccertificate.h" |
12 | 12 |
13 #include "webrtc/base/checks.h" | 13 #include "webrtc/base/checks.h" |
14 #include "webrtc/base/timeutils.h" | |
15 | 14 |
16 namespace rtc { | 15 namespace rtc { |
17 | 16 |
18 scoped_refptr<RTCCertificate> RTCCertificate::Create( | 17 scoped_refptr<RTCCertificate> RTCCertificate::Create( |
19 scoped_ptr<SSLIdentity> identity) { | 18 scoped_ptr<SSLIdentity> identity) { |
20 return new RefCountedObject<RTCCertificate>(identity.release()); | 19 return new RefCountedObject<RTCCertificate>(identity.release()); |
21 } | 20 } |
22 | 21 |
23 RTCCertificate::RTCCertificate(SSLIdentity* identity) | 22 RTCCertificate::RTCCertificate(SSLIdentity* identity) |
24 : identity_(identity) { | 23 : identity_(identity) { |
25 RTC_DCHECK(identity_); | 24 RTC_DCHECK(identity_); |
26 } | 25 } |
27 | 26 |
28 RTCCertificate::~RTCCertificate() { | 27 RTCCertificate::~RTCCertificate() { |
29 } | 28 } |
30 | 29 |
31 uint64_t RTCCertificate::expires_timestamp_ns() const { | 30 uint64_t RTCCertificate::Expires() const { |
32 // TODO(hbos): Update once SSLIdentity/SSLCertificate supports expires field. | 31 int64_t expires = ssl_certificate().CertificateExpirationTime(); |
33 return 0; | 32 if (expires != -1) |
| 33 return static_cast<uint64_t>(expires) * kNumMillisecsPerSec; |
| 34 // If the expiration time could not be retrieved return an expired timestamp. |
| 35 return 0; // = 1970-01-01 |
34 } | 36 } |
35 | 37 |
36 bool RTCCertificate::HasExpired() const { | 38 bool RTCCertificate::HasExpired(uint64_t now) const { |
37 return expires_timestamp_ns() <= TimeNanos(); | 39 return Expires() <= now; |
38 } | 40 } |
39 | 41 |
40 const SSLCertificate& RTCCertificate::ssl_certificate() const { | 42 const SSLCertificate& RTCCertificate::ssl_certificate() const { |
41 return identity_->certificate(); | 43 return identity_->certificate(); |
42 } | 44 } |
43 | 45 |
44 } // namespace rtc | 46 } // namespace rtc |
OLD | NEW |