OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 | 54 |
55 class OpenSSLIdentity; | 55 class OpenSSLIdentity; |
56 | 56 |
57 /////////////////////////////////////////////////////////////////////////////// | 57 /////////////////////////////////////////////////////////////////////////////// |
58 | 58 |
59 class OpenSSLStreamAdapter : public SSLStreamAdapter { | 59 class OpenSSLStreamAdapter : public SSLStreamAdapter { |
60 public: | 60 public: |
61 explicit OpenSSLStreamAdapter(StreamInterface* stream); | 61 explicit OpenSSLStreamAdapter(StreamInterface* stream); |
62 ~OpenSSLStreamAdapter() override; | 62 ~OpenSSLStreamAdapter() override; |
63 | 63 |
64 void SetIdentity(SSLIdentity* identity) override; | 64 void SetCertificate( |
| 65 const scoped_refptr<webrtc::DtlsCertificate>& certificate) override; |
65 | 66 |
66 // Default argument is for compatibility | 67 // Default argument is for compatibility |
67 void SetServerRole(SSLRole role = SSL_SERVER) override; | 68 void SetServerRole(SSLRole role = SSL_SERVER) override; |
68 bool SetPeerCertificateDigest(const std::string& digest_alg, | 69 bool SetPeerCertificateDigest(const std::string& digest_alg, |
69 const unsigned char* digest_val, | 70 const unsigned char* digest_val, |
70 size_t digest_len) override; | 71 size_t digest_len) override; |
71 | 72 |
72 bool GetPeerCertificate(SSLCertificate** cert) const override; | 73 bool GetPeerCertificate(SSLCertificate** cert) const override; |
73 | 74 |
74 int StartSSLWithServer(const char* server_name) override; | 75 int StartSSLWithServer(const char* server_name) override; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 SSLRole role_; | 176 SSLRole role_; |
176 int ssl_error_code_; // valid when state_ == SSL_ERROR or SSL_CLOSED | 177 int ssl_error_code_; // valid when state_ == SSL_ERROR or SSL_CLOSED |
177 // Whether the SSL negotiation is blocked on needing to read or | 178 // Whether the SSL negotiation is blocked on needing to read or |
178 // write to the wrapped stream. | 179 // write to the wrapped stream. |
179 bool ssl_read_needs_write_; | 180 bool ssl_read_needs_write_; |
180 bool ssl_write_needs_read_; | 181 bool ssl_write_needs_read_; |
181 | 182 |
182 SSL* ssl_; | 183 SSL* ssl_; |
183 SSL_CTX* ssl_ctx_; | 184 SSL_CTX* ssl_ctx_; |
184 | 185 |
185 // Our key and certificate, mostly useful in peer-to-peer mode. | 186 // Contains our key and certificate, mostly useful in peer-to-peer mode. |
186 scoped_ptr<OpenSSLIdentity> identity_; | 187 scoped_refptr<webrtc::DtlsCertificate> certificate_; |
187 // in traditional mode, the server name that the server's certificate | 188 // in traditional mode, the server name that the server's certificate |
188 // must specify. Empty in peer-to-peer mode. | 189 // must specify. Empty in peer-to-peer mode. |
189 std::string ssl_server_name_; | 190 std::string ssl_server_name_; |
190 // The certificate that the peer must present or did present. Initially | 191 // The certificate that the peer must present or did present. Initially |
191 // null in traditional mode, until the connection is established. | 192 // null in traditional mode, until the connection is established. |
192 scoped_ptr<OpenSSLCertificate> peer_certificate_; | 193 scoped_ptr<OpenSSLCertificate> peer_certificate_; |
193 // In peer-to-peer mode, the digest of the certificate that | 194 // In peer-to-peer mode, the digest of the certificate that |
194 // the peer must present. | 195 // the peer must present. |
195 Buffer peer_certificate_digest_value_; | 196 Buffer peer_certificate_digest_value_; |
196 std::string peer_certificate_digest_algorithm_; | 197 std::string peer_certificate_digest_algorithm_; |
197 | 198 |
198 // OpenSSLAdapter::custom_verify_callback_ result | 199 // OpenSSLAdapter::custom_verify_callback_ result |
199 bool custom_verification_succeeded_; | 200 bool custom_verification_succeeded_; |
200 | 201 |
201 // The DtlsSrtp ciphers | 202 // The DtlsSrtp ciphers |
202 std::string srtp_ciphers_; | 203 std::string srtp_ciphers_; |
203 | 204 |
204 // Do DTLS or not | 205 // Do DTLS or not |
205 SSLMode ssl_mode_; | 206 SSLMode ssl_mode_; |
206 | 207 |
207 // Max. allowed protocol version | 208 // Max. allowed protocol version |
208 SSLProtocolVersion ssl_max_version_; | 209 SSLProtocolVersion ssl_max_version_; |
209 }; | 210 }; |
210 | 211 |
211 ///////////////////////////////////////////////////////////////////////////// | 212 ///////////////////////////////////////////////////////////////////////////// |
212 | 213 |
213 } // namespace rtc | 214 } // namespace rtc |
214 | 215 |
215 #endif // WEBRTC_BASE_OPENSSLSTREAMADAPTER_H__ | 216 #endif // WEBRTC_BASE_OPENSSLSTREAMADAPTER_H__ |
OLD | NEW |