blob: 513ae8caf7710159c57d5c20618f379851b265e1 [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
26#elif SSL_USE_NSS // && !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL
27
28#include "webrtc/base/nssstreamadapter.h"
29
30#endif // !SSL_USE_OPENSSL && !SSL_USE_SCHANNEL && !SSL_USE_NSS
31
32///////////////////////////////////////////////////////////////////////////////
33
34namespace rtc {
35
36SSLStreamAdapter* SSLStreamAdapter::Create(StreamInterface* stream) {
37#if SSL_USE_SCHANNEL
38 return NULL;
39#elif SSL_USE_OPENSSL // !SSL_USE_SCHANNEL
40 return new OpenSSLStreamAdapter(stream);
41#elif SSL_USE_NSS // !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL
42 return new NSSStreamAdapter(stream);
43#else // !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL && !SSL_USE_NSS
44 return NULL;
45#endif
46}
47
48// Note: this matches the logic above with SCHANNEL dominating
49#if SSL_USE_SCHANNEL
50bool SSLStreamAdapter::HaveDtls() { return false; }
51bool SSLStreamAdapter::HaveDtlsSrtp() { return false; }
52bool SSLStreamAdapter::HaveExporter() { return false; }
pthatcher@webrtc.org3ee4fe52015-02-11 22:34:36 +000053std::string SSLStreamAdapter::GetDefaultSslCipher() {
54 return std::string();
55}
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000056#elif SSL_USE_OPENSSL
57bool SSLStreamAdapter::HaveDtls() {
58 return OpenSSLStreamAdapter::HaveDtls();
59}
60bool SSLStreamAdapter::HaveDtlsSrtp() {
61 return OpenSSLStreamAdapter::HaveDtlsSrtp();
62}
63bool SSLStreamAdapter::HaveExporter() {
64 return OpenSSLStreamAdapter::HaveExporter();
65}
pthatcher@webrtc.org3ee4fe52015-02-11 22:34:36 +000066std::string SSLStreamAdapter::GetDefaultSslCipher() {
67 return OpenSSLStreamAdapter::GetDefaultSslCipher();
68}
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000069#elif SSL_USE_NSS
70bool SSLStreamAdapter::HaveDtls() {
71 return NSSStreamAdapter::HaveDtls();
72}
73bool SSLStreamAdapter::HaveDtlsSrtp() {
74 return NSSStreamAdapter::HaveDtlsSrtp();
75}
76bool SSLStreamAdapter::HaveExporter() {
77 return NSSStreamAdapter::HaveExporter();
78}
pthatcher@webrtc.org3ee4fe52015-02-11 22:34:36 +000079std::string SSLStreamAdapter::GetDefaultSslCipher() {
80 return NSSStreamAdapter::GetDefaultSslCipher();
81}
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000082#endif // !SSL_USE_SCHANNEL && !SSL_USE_OPENSSL && !SSL_USE_NSS
83
84///////////////////////////////////////////////////////////////////////////////
85
86} // namespace rtc