1 /* 2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/base/rtccertificate.h" 12 13 #include "webrtc/base/checks.h" 14 15 namespace rtc { 16 Create(scoped_ptr<SSLIdentity> identity)17scoped_refptr<RTCCertificate> RTCCertificate::Create( 18 scoped_ptr<SSLIdentity> identity) { 19 return new RefCountedObject<RTCCertificate>(identity.release()); 20 } 21 RTCCertificate(SSLIdentity * identity)22RTCCertificate::RTCCertificate(SSLIdentity* identity) 23 : identity_(identity) { 24 RTC_DCHECK(identity_); 25 } 26 ~RTCCertificate()27RTCCertificate::~RTCCertificate() { 28 } 29 Expires() const30uint64_t RTCCertificate::Expires() const { 31 int64_t expires = ssl_certificate().CertificateExpirationTime(); 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 36 } 37 HasExpired(uint64_t now) const38bool RTCCertificate::HasExpired(uint64_t now) const { 39 return Expires() <= now; 40 } 41 ssl_certificate() const42const SSLCertificate& RTCCertificate::ssl_certificate() const { 43 return identity_->certificate(); 44 } 45 46 } // namespace rtc 47