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

Side by Side Diff: webrtc/p2p/base/transportdescriptionfactory.h

Issue 1269843005: Added DtlsCertificate, a ref counted object owning an SSLIdentity (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Merge with master Created 5 years, 4 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 * Copyright 2012 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_ 11 #ifndef WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_
12 #define WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_ 12 #define WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_
13 13
14 #include "talk/app/webrtc/dtlscertificate.h"
15 #include "webrtc/base/scoped_ref_ptr.h"
14 #include "webrtc/p2p/base/transportdescription.h" 16 #include "webrtc/p2p/base/transportdescription.h"
15 17
16 namespace rtc { 18 namespace rtc {
17 class SSLIdentity; 19 class SSLIdentity;
18 } 20 }
19 21
20 namespace cricket { 22 namespace cricket {
21 23
22 struct TransportOptions { 24 struct TransportOptions {
23 TransportOptions() : ice_restart(false), prefer_passive_role(false) {} 25 TransportOptions() : ice_restart(false), prefer_passive_role(false) {}
24 bool ice_restart; 26 bool ice_restart;
25 bool prefer_passive_role; 27 bool prefer_passive_role;
26 }; 28 };
27 29
28 // Creates transport descriptions according to the supplied configuration. 30 // Creates transport descriptions according to the supplied configuration.
29 // When creating answers, performs the appropriate negotiation 31 // When creating answers, performs the appropriate negotiation
30 // of the various fields to determine the proper result. 32 // of the various fields to determine the proper result.
31 class TransportDescriptionFactory { 33 class TransportDescriptionFactory {
32 public: 34 public:
33 // Default ctor; use methods below to set configuration. 35 // Default ctor; use methods below to set configuration.
34 TransportDescriptionFactory(); 36 TransportDescriptionFactory();
35 SecurePolicy secure() const { return secure_; } 37 SecurePolicy secure() const { return secure_; }
36 // The identity to use when setting up DTLS. 38 // The certificate to use when setting up DTLS.
37 rtc::SSLIdentity* identity() const { return identity_; } 39 const rtc::scoped_refptr<webrtc::DtlsCertificate>& certificate() const {
40 return certificate_;
41 }
38 42
39 // Specifies the transport protocol to be use. 43 // Specifies the transport protocol to be use.
40 void set_protocol(TransportProtocol protocol) { protocol_ = protocol; } 44 void set_protocol(TransportProtocol protocol) { protocol_ = protocol; }
41 // Specifies the transport security policy to use. 45 // Specifies the transport security policy to use.
42 void set_secure(SecurePolicy s) { secure_ = s; } 46 void set_secure(SecurePolicy s) { secure_ = s; }
43 // Specifies the identity to use (only used when secure is not SEC_DISABLED). 47 // Specifies the certificate to use (only used when secure != SEC_DISABLED).
44 void set_identity(rtc::SSLIdentity* identity) { identity_ = identity; } 48 void set_certificate(
49 const rtc::scoped_refptr<webrtc::DtlsCertificate>& cert) {
50 certificate_ = cert;
51 }
45 52
46 // Creates a transport description suitable for use in an offer. 53 // Creates a transport description suitable for use in an offer.
47 TransportDescription* CreateOffer(const TransportOptions& options, 54 TransportDescription* CreateOffer(const TransportOptions& options,
48 const TransportDescription* current_description) const; 55 const TransportDescription* current_description) const;
49 // Create a transport description that is a response to an offer. 56 // Create a transport description that is a response to an offer.
50 TransportDescription* CreateAnswer( 57 TransportDescription* CreateAnswer(
51 const TransportDescription* offer, 58 const TransportDescription* offer,
52 const TransportOptions& options, 59 const TransportOptions& options,
53 const TransportDescription* current_description) const; 60 const TransportDescription* current_description) const;
54 61
55 private: 62 private:
56 bool SetSecurityInfo(TransportDescription* description, 63 bool SetSecurityInfo(TransportDescription* description,
57 ConnectionRole role) const; 64 ConnectionRole role) const;
58 65
59 TransportProtocol protocol_; 66 TransportProtocol protocol_;
60 SecurePolicy secure_; 67 SecurePolicy secure_;
61 rtc::SSLIdentity* identity_; 68 rtc::scoped_refptr<webrtc::DtlsCertificate> certificate_;
62 }; 69 };
63 70
64 } // namespace cricket 71 } // namespace cricket
65 72
66 #endif // WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_ 73 #endif // WEBRTC_P2P_BASE_TRANSPORTDESCRIPTIONFACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698