aboutsummaryrefslogtreecommitdiff
path: root/webrtc/base/sslidentity.h
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/base/sslidentity.h')
-rw-r--r--webrtc/base/sslidentity.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/webrtc/base/sslidentity.h b/webrtc/base/sslidentity.h
index cf9942637e..a143ee4108 100644
--- a/webrtc/base/sslidentity.h
+++ b/webrtc/base/sslidentity.h
@@ -19,6 +19,7 @@
#include "webrtc/base/buffer.h"
#include "webrtc/base/messagedigest.h"
+#include "webrtc/base/timeutils.h"
namespace rtc {
@@ -68,6 +69,10 @@ class SSLCertificate {
unsigned char* digest,
size_t size,
size_t* length) const = 0;
+
+ // Returns the time in seconds relative to epoch, 1970-01-01T00:00:00Z (UTC),
+ // or -1 if an expiration time could not be retrieved.
+ virtual int64_t CertificateExpirationTime() const = 0;
};
// SSLCertChain is a simple wrapper for a vector of SSLCertificates. It serves
@@ -168,8 +173,8 @@ KeyType IntKeyTypeFamilyToKeyType(int key_type_family);
// random string will be used.
struct SSLIdentityParams {
std::string common_name;
- int not_before; // offset from current time in seconds.
- int not_after; // offset from current time in seconds.
+ time_t not_before; // Absolute time since epoch in seconds.
+ time_t not_after; // Absolute time since epoch in seconds.
KeyParams key_params;
};
@@ -217,6 +222,11 @@ class SSLIdentity {
size_t length);
};
+// Convert from ASN1 time as restricted by RFC 5280 to seconds from 1970-01-01
+// 00.00 ("epoch"). If the ASN1 time cannot be read, return -1. The data at
+// |s| is not 0-terminated; its char count is defined by |length|.
+int64_t ASN1TimeToSec(const unsigned char* s, size_t length, bool long_format);
+
extern const char kPemTypeCertificate[];
extern const char kPemTypeRsaPrivateKey[];
extern const char kPemTypeEcPrivateKey[];