Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(981)

Unified Diff: webrtc/base/rtccertificategenerator.h

Issue 2001103002: RTCCertificateGeneratorInterface and RTCCertificateGeneratorStoreWrapper added. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed nits Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/api/dtlsidentitystore.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/rtccertificategenerator.h
diff --git a/webrtc/base/rtccertificategenerator.h b/webrtc/base/rtccertificategenerator.h
index 08fe67108d4b9b4be180f67094fd744ab314c125..c131d695fdb60cb459c38ca0cb6053df362be8c2 100644
--- a/webrtc/base/rtccertificategenerator.h
+++ b/webrtc/base/rtccertificategenerator.h
@@ -20,6 +20,7 @@
namespace rtc {
+// See |RTCCertificateGeneratorInterface::GenerateCertificateAsync|.
class RTCCertificateGeneratorCallback : public RefCountInterface {
public:
virtual void OnSuccess(
@@ -31,10 +32,27 @@ class RTCCertificateGeneratorCallback : public RefCountInterface {
};
// Generates |RTCCertificate|s.
+// See |RTCCertificateGenerator| for the WebRTC repo's implementation.
+class RTCCertificateGeneratorInterface {
+ public:
+ virtual ~RTCCertificateGeneratorInterface() {}
+
+ // Generates a certificate asynchronously on the worker thread.
+ // Must be called on the signaling thread. The |callback| is invoked with the
+ // result on the signaling thread. |exipres_ms| optionally specifies for how
+ // long we want the certificate to be valid, but the implementation may choose
+ // its own restrictions on the expiration time.
+ virtual void GenerateCertificateAsync(
+ const KeyParams& key_params,
+ const Optional<uint64_t>& expires_ms,
+ const scoped_refptr<RTCCertificateGeneratorCallback>& callback) = 0;
+};
+
+// Standard implementation of |RTCCertificateGeneratorInterface|.
// The static function |GenerateCertificate| generates a certificate on the
// current thread. The |RTCCertificateGenerator| instance generates certificates
// asynchronously on the worker thread with |GenerateCertificateAsync|.
-class RTCCertificateGenerator {
+class RTCCertificateGenerator : public RTCCertificateGeneratorInterface {
public:
// Generates a certificate on the current thread. Returns null on failure.
// If |expires_ms| is specified, the certificate will expire in approximately
@@ -46,18 +64,17 @@ class RTCCertificateGenerator {
const Optional<uint64_t>& expires_ms);
RTCCertificateGenerator(Thread* signaling_thread, Thread* worker_thread);
+ ~RTCCertificateGenerator() override {}
- // Generates a certificate asynchronously on the worker thread.
- // Must be called on the signaling thread. The |callback| is invoked with the
- // result on the signaling thread. If |expires_ms| is specified, the
- // certificate will expire in approximately that many milliseconds from now.
- // |expires_ms| is limited to a year, a larger value than that is clamped down
- // to a year. If |expires_ms| is not specified, a default expiration time is
- // used.
+ // |RTCCertificateGeneratorInterface| overrides.
+ // If |expires_ms| is specified, the certificate will expire in approximately
+ // that many milliseconds from now. |expires_ms| is limited to a year, a
+ // larger value than that is clamped down to a year. If |expires_ms| is not
+ // specified, a default expiration time is used.
void GenerateCertificateAsync(
const KeyParams& key_params,
const Optional<uint64_t>& expires_ms,
- const scoped_refptr<RTCCertificateGeneratorCallback>& callback);
+ const scoped_refptr<RTCCertificateGeneratorCallback>& callback) override;
private:
Thread* const signaling_thread_;
« no previous file with comments | « webrtc/api/dtlsidentitystore.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698