| Index: webrtc/base/rtccertificategenerator.h
|
| diff --git a/webrtc/base/rtccertificategenerator.h b/webrtc/base/rtccertificategenerator.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..08fe67108d4b9b4be180f67094fd744ab314c125
|
| --- /dev/null
|
| +++ b/webrtc/base/rtccertificategenerator.h
|
| @@ -0,0 +1,69 @@
|
| +/*
|
| + * Copyright 2016 The WebRTC project authors. All Rights Reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license
|
| + * that can be found in the LICENSE file in the root of the source
|
| + * tree. An additional intellectual property rights grant can be found
|
| + * in the file PATENTS. All contributing project authors may
|
| + * be found in the AUTHORS file in the root of the source tree.
|
| + */
|
| +
|
| +#ifndef WEBRTC_BASE_RTCCERTIFICATEGENERATOR_H_
|
| +#define WEBRTC_BASE_RTCCERTIFICATEGENERATOR_H_
|
| +
|
| +#include "webrtc/base/optional.h"
|
| +#include "webrtc/base/refcount.h"
|
| +#include "webrtc/base/rtccertificate.h"
|
| +#include "webrtc/base/scoped_ref_ptr.h"
|
| +#include "webrtc/base/sslidentity.h"
|
| +#include "webrtc/base/thread.h"
|
| +
|
| +namespace rtc {
|
| +
|
| +class RTCCertificateGeneratorCallback : public RefCountInterface {
|
| + public:
|
| + virtual void OnSuccess(
|
| + const scoped_refptr<RTCCertificate>& certificate) = 0;
|
| + virtual void OnFailure() = 0;
|
| +
|
| + protected:
|
| + ~RTCCertificateGeneratorCallback() override {}
|
| +};
|
| +
|
| +// Generates |RTCCertificate|s.
|
| +// 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 {
|
| + public:
|
| + // Generates a certificate on the current thread. Returns null on failure.
|
| + // 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.
|
| + static scoped_refptr<RTCCertificate> GenerateCertificate(
|
| + const KeyParams& key_params,
|
| + const Optional<uint64_t>& expires_ms);
|
| +
|
| + RTCCertificateGenerator(Thread* signaling_thread, Thread* worker_thread);
|
| +
|
| + // 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.
|
| + void GenerateCertificateAsync(
|
| + const KeyParams& key_params,
|
| + const Optional<uint64_t>& expires_ms,
|
| + const scoped_refptr<RTCCertificateGeneratorCallback>& callback);
|
| +
|
| + private:
|
| + Thread* const signaling_thread_;
|
| + Thread* const worker_thread_;
|
| +};
|
| +
|
| +} // namespace rtc
|
| +
|
| +#endif // WEBRTC_BASE_RTCCERTIFICATEGENERATOR_H_
|
|
|