RTCCertificate::Expires() and ::HasExpired() implemented using SSLCertificate::CertificateExpirationTime().
This is a re-upload of https://codereview.webrtc.org/1494103003 which was reverted and now re-landing.
BUG=chromium:544894
Review URL: https://codereview.webrtc.org/1511753003
Cr-Original-Commit-Position: refs/heads/master@{#10951}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 3980d4696059b0f92a181c127d9051176cc44872
diff --git a/base/fakesslidentity.h b/base/fakesslidentity.h
index 69d590b..ec603a5 100644
--- a/base/fakesslidentity.h
+++ b/base/fakesslidentity.h
@@ -25,9 +25,11 @@
// SHA-1 is the default digest algorithm because it is available in all build
// configurations used for unit testing.
explicit FakeSSLCertificate(const std::string& data)
- : data_(data), digest_algorithm_(DIGEST_SHA_1) {}
+ : data_(data), digest_algorithm_(DIGEST_SHA_1), expiration_time_(-1) {}
explicit FakeSSLCertificate(const std::vector<std::string>& certs)
- : data_(certs.front()), digest_algorithm_(DIGEST_SHA_1) {
+ : data_(certs.front()),
+ digest_algorithm_(DIGEST_SHA_1),
+ expiration_time_(-1) {
std::vector<std::string>::const_iterator it;
// Skip certs[0].
for (it = certs.begin() + 1; it != certs.end(); ++it) {
@@ -45,7 +47,12 @@
VERIFY(SSLIdentity::PemToDer(kPemTypeCertificate, data_, &der_string));
der_buffer->SetData(der_string.c_str(), der_string.size());
}
- int64_t CertificateExpirationTime() const override { return -1; }
+ int64_t CertificateExpirationTime() const override {
+ return expiration_time_;
+ }
+ void SetCertificateExpirationTime(int64_t expiration_time) {
+ expiration_time_ = expiration_time;
+ }
void set_digest_algorithm(const std::string& algorithm) {
digest_algorithm_ = algorithm;
}
@@ -79,6 +86,8 @@
std::string data_;
std::vector<FakeSSLCertificate> certs_;
std::string digest_algorithm_;
+ // Expiration time in seconds relative to epoch, 1970-01-01T00:00:00Z (UTC).
+ int64_t expiration_time_;
};
class FakeSSLIdentity : public rtc::SSLIdentity {