blob: 42dea9c0362f6910f550a36830e4dade3cecc5f1 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#if HAVE_CONFIG_H
12#include "config.h"
13#endif // HAVE_CONFIG_H
14
15#include "webrtc/base/sslstreamadapter.h"
16#include "webrtc/base/sslconfig.h"
17
18#if SSL_USE_SCHANNEL
19
20// SChannel support for DTLS and peer-to-peer mode are not
21// done.
22#elif SSL_USE_OPENSSL // && !SSL_USE_SCHANNEL
23
24#include "webrtc/base/opensslstreamadapter.h"
25
torbjorng07d09362015-09-22 11:58:04 -070026#endif // !SSL_USE_OPENSSL && !SSL_USE_SCHANNEL
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000027
28///////////////////////////////////////////////////////////////////////////////
29
30namespace rtc {
31
32SSLStreamAdapter* SSLStreamAdapter::Create(StreamInterface* stream) {
33#if SSL_USE_SCHANNEL
34 return NULL;
35#elif SSL_USE_OPENSSL // !SSL_USE_SCHANNEL
36 return new OpenSSLStreamAdapter(stream);
torbjorng07d09362015-09-22 11:58:04 -070037#else // !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000038 return NULL;
39#endif
40}
41
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +000042bool SSLStreamAdapter::GetSslCipher(std::string* cipher) {
43 return false;
44}
45
46bool SSLStreamAdapter::ExportKeyingMaterial(const std::string& label,
47 const uint8* context,
48 size_t context_len,
49 bool use_context,
50 uint8* result,
51 size_t result_len) {
52 return false; // Default is unsupported
53}
54
55bool SSLStreamAdapter::SetDtlsSrtpCiphers(
56 const std::vector<std::string>& ciphers) {
57 return false;
58}
59
60bool SSLStreamAdapter::GetDtlsSrtpCipher(std::string* cipher) {
61 return false;
62}
63
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000064// Note: this matches the logic above with SCHANNEL dominating
65#if SSL_USE_SCHANNEL
66bool SSLStreamAdapter::HaveDtls() { return false; }
67bool SSLStreamAdapter::HaveDtlsSrtp() { return false; }
68bool SSLStreamAdapter::HaveExporter() { return false; }
Torbjorn Granlundb6d4ec42015-08-17 14:08:59 +020069std::string SSLStreamAdapter::GetDefaultSslCipher(SSLProtocolVersion version,
70 KeyType key_type) {
pthatcher@webrtc.org3ee4fe52015-02-11 22:34:36 +000071 return std::string();
72}
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000073#elif SSL_USE_OPENSSL
74bool SSLStreamAdapter::HaveDtls() {
75 return OpenSSLStreamAdapter::HaveDtls();
76}
77bool SSLStreamAdapter::HaveDtlsSrtp() {
78 return OpenSSLStreamAdapter::HaveDtlsSrtp();
79}
80bool SSLStreamAdapter::HaveExporter() {
81 return OpenSSLStreamAdapter::HaveExporter();
82}
Torbjorn Granlundb6d4ec42015-08-17 14:08:59 +020083std::string SSLStreamAdapter::GetDefaultSslCipher(SSLProtocolVersion version,
84 KeyType key_type) {
85 return OpenSSLStreamAdapter::GetDefaultSslCipher(version, key_type);
pthatcher@webrtc.org3ee4fe52015-02-11 22:34:36 +000086}
torbjorng07d09362015-09-22 11:58:04 -070087#endif // !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000088
89///////////////////////////////////////////////////////////////////////////////
90
91} // namespace rtc