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

Side by Side Diff: talk/app/webrtc/webrtcsessiondescriptionfactory.h

Issue 1151943005: Ability to specify KeyType (RSA, ECDSA) for SSLIdentity generation in libjingle (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressing ASAN, LSAN issues in unittests Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 10 matching lines...) Expand all
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28 #ifndef TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ 28 #ifndef TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
29 #define TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ 29 #define TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
30 30
31 #include "talk/app/webrtc/dtlsidentitystore.h"
31 #include "talk/app/webrtc/peerconnectioninterface.h" 32 #include "talk/app/webrtc/peerconnectioninterface.h"
32 #include "webrtc/p2p/base/transportdescriptionfactory.h"
33 #include "talk/session/media/mediasession.h" 33 #include "talk/session/media/mediasession.h"
34 #include "webrtc/base/messagehandler.h" 34 #include "webrtc/base/messagehandler.h"
35 #include "webrtc/base/sslidentity.h"
36 #include "webrtc/p2p/base/transportdescriptionfactory.h"
35 37
36 namespace cricket { 38 namespace cricket {
37 class ChannelManager; 39 class ChannelManager;
38 class TransportDescriptionFactory; 40 class TransportDescriptionFactory;
39 } // namespace cricket 41 } // namespace cricket
40 42
41 namespace webrtc { 43 namespace webrtc {
42 class CreateSessionDescriptionObserver; 44 class CreateSessionDescriptionObserver;
43 class MediaConstraintsInterface; 45 class MediaConstraintsInterface;
44 class MediaStreamSignaling; 46 class MediaStreamSignaling;
45 class SessionDescriptionInterface; 47 class SessionDescriptionInterface;
46 class WebRtcSession; 48 class WebRtcSession;
47 49
48 // DTLS identity request callback class. 50 // DTLS identity request callback class.
49 class WebRtcIdentityRequestObserver : public DTLSIdentityRequestObserver, 51 class WebRtcIdentityRequestObserver : public DtlsIdentityRequestObserver,
50 public sigslot::has_slots<> { 52 public sigslot::has_slots<> {
51 public: 53 public:
52 // DTLSIdentityRequestObserver overrides. 54 // DtlsIdentityRequestObserver overrides.
53 void OnFailure(int error) override; 55 void OnFailure(int error) override;
54 void OnSuccess(const std::string& der_cert, 56 void OnSuccess(const std::string& der_cert,
55 const std::string& der_private_key) override; 57 const std::string& der_private_key) override;
56 void OnSuccessWithIdentityObj( 58 void OnSuccessWithIdentityObj(
57 rtc::scoped_ptr<rtc::SSLIdentity> identity) override; 59 rtc::scoped_ptr<rtc::SSLIdentity> identity) override;
58 60
59 sigslot::signal1<int> SignalRequestFailed; 61 sigslot::signal1<int> SignalRequestFailed;
60 sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady; 62 sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady;
61 }; 63 };
62 64
(...skipping 21 matching lines...) Expand all
84 // It queues the create offer/answer request until the DTLS identity 86 // It queues the create offer/answer request until the DTLS identity
85 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady 87 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady
86 // is called. 88 // is called.
87 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler, 89 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler,
88 public sigslot::has_slots<> { 90 public sigslot::has_slots<> {
89 public: 91 public:
90 WebRtcSessionDescriptionFactory( 92 WebRtcSessionDescriptionFactory(
91 rtc::Thread* signaling_thread, 93 rtc::Thread* signaling_thread,
92 cricket::ChannelManager* channel_manager, 94 cricket::ChannelManager* channel_manager,
93 MediaStreamSignaling* mediastream_signaling, 95 MediaStreamSignaling* mediastream_signaling,
94 DTLSIdentityServiceInterface* dtls_identity_service, 96 DtlsIdentityStoreInterface* dtls_identity_store,
95 // TODO(jiayl): remove the dependency on session once b/10226852 is fixed. 97 // TODO(jiayl): remove the dependency on session once b/10226852 is fixed.
96 WebRtcSession* session, 98 WebRtcSession* session,
97 const std::string& session_id, 99 const std::string& session_id,
98 cricket::DataChannelType dct, 100 cricket::DataChannelType dct,
99 bool dtls_enabled); 101 bool dtls_enabled,
102 rtc::KeyType key_type);
100 virtual ~WebRtcSessionDescriptionFactory(); 103 virtual ~WebRtcSessionDescriptionFactory();
101 104
102 static void CopyCandidatesFromSessionDescription( 105 static void CopyCandidatesFromSessionDescription(
103 const SessionDescriptionInterface* source_desc, 106 const SessionDescriptionInterface* source_desc,
104 SessionDescriptionInterface* dest_desc); 107 SessionDescriptionInterface* dest_desc);
105 108
106 void CreateOffer( 109 void CreateOffer(
107 CreateSessionDescriptionObserver* observer, 110 CreateSessionDescriptionObserver* observer,
108 const PeerConnectionInterface::RTCOfferAnswerOptions& options); 111 const PeerConnectionInterface::RTCOfferAnswerOptions& options);
109 void CreateAnswer( 112 void CreateAnswer(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 void OnIdentityRequestFailed(int error); 146 void OnIdentityRequestFailed(int error);
144 void SetIdentity(rtc::SSLIdentity* identity); 147 void SetIdentity(rtc::SSLIdentity* identity);
145 148
146 std::queue<CreateSessionDescriptionRequest> 149 std::queue<CreateSessionDescriptionRequest>
147 create_session_description_requests_; 150 create_session_description_requests_;
148 rtc::Thread* signaling_thread_; 151 rtc::Thread* signaling_thread_;
149 MediaStreamSignaling* mediastream_signaling_; 152 MediaStreamSignaling* mediastream_signaling_;
150 cricket::TransportDescriptionFactory transport_desc_factory_; 153 cricket::TransportDescriptionFactory transport_desc_factory_;
151 cricket::MediaSessionDescriptionFactory session_desc_factory_; 154 cricket::MediaSessionDescriptionFactory session_desc_factory_;
152 uint64 session_version_; 155 uint64 session_version_;
153 rtc::scoped_ptr<DTLSIdentityServiceInterface> identity_service_; 156 // TODO(hbos): who should have the ownership? us or caller? it's not refptr, i t's ptr!
157 // rtc::scoped_ptr<DtlsIdentityStoreInterface> identity_store_; // should not have the ownership
158 DtlsIdentityStoreInterface* identity_store_;
154 rtc::scoped_refptr<WebRtcIdentityRequestObserver> 159 rtc::scoped_refptr<WebRtcIdentityRequestObserver>
155 identity_request_observer_; 160 identity_request_observer_;
156 WebRtcSession* session_; 161 WebRtcSession* session_;
157 std::string session_id_; 162 std::string session_id_;
158 cricket::DataChannelType data_channel_type_; 163 cricket::DataChannelType data_channel_type_;
159 IdentityRequestState identity_request_state_; 164 IdentityRequestState identity_request_state_;
165 // Key type to use when generating identity (SSLIdentity::Generate).
166 rtc::KeyType key_type_;
160 167
161 DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory); 168 DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory);
162 }; 169 };
163 } // namespace webrtc 170 } // namespace webrtc
164 171
165 #endif // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ 172 #endif // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698