Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
OpenSSLStreamAdapter.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/absl/AnyInvocable.h"
7#include "mc/external/webrtc/ArrayView.h"
8#include "mc/external/webrtc/BufferT.h"
9#include "mc/external/webrtc/SSLHandshakeError.h"
10#include "mc/external/webrtc/SSLMode.h"
11#include "mc/external/webrtc/SSLPeerCertificateDigestError.h"
12#include "mc/external/webrtc/SSLProtocolVersion.h"
13#include "mc/external/webrtc/SSLRole.h"
14#include "mc/external/webrtc/SSLStreamAdapter.h"
15#include "mc/external/webrtc/StreamResult.h"
16#include "mc/external/webrtc/StreamState.h"
17
18// auto generated forward declare list
19// clang-format off
20namespace webrtc { class FieldTrialsView; }
21namespace webrtc { class SSLCertChain; }
22namespace webrtc { class SSLIdentity; }
23namespace webrtc { class StreamInterface; }
24// clang-format on
25
26namespace webrtc {
27
28class OpenSSLStreamAdapter : public ::webrtc::SSLStreamAdapter {
29public:
30 // OpenSSLStreamAdapter inner types define
31 enum class SSLState : int {
32 None = 0,
33 Wait = 1,
34 Connecting = 2,
35 Connected = 3,
36 Error = 4,
37 Closed = 5,
38 };
39
40public:
41 // member variables
42 // NOLINTBEGIN
69 // NOLINTEND
70
71public:
72 // prevent constructor by default
73 OpenSSLStreamAdapter& operator=(OpenSSLStreamAdapter const&);
74 OpenSSLStreamAdapter(OpenSSLStreamAdapter const&);
75 OpenSSLStreamAdapter();
76
77public:
78 // virtual functions
79 // NOLINTBEGIN
80 virtual ~OpenSSLStreamAdapter() /*override*/;
81
82 virtual void SetIdentity(::std::unique_ptr<::webrtc::SSLIdentity> identity) /*override*/;
83
84 virtual ::webrtc::SSLIdentity* GetIdentityForTesting() const /*override*/;
85
86 virtual void SetServerRole(::webrtc::SSLRole role) /*override*/;
87
88 virtual ::webrtc::SSLPeerCertificateDigestError
89 SetPeerCertificateDigest(::std::string_view digest_alg, ::webrtc::ArrayView<uchar const> digest_val) /*override*/;
90
91 virtual ::std::unique_ptr<::webrtc::SSLCertChain> GetPeerSSLCertChain() const /*override*/;
92
93 virtual int StartSSL() /*override*/;
94
95 virtual void SetMode(::webrtc::SSLMode mode) /*override*/;
96
97 virtual void SetMaxProtocolVersion(::webrtc::SSLProtocolVersion version) /*override*/;
98
99 virtual void SetInitialRetransmissionTimeout(int timeout_ms) /*override*/;
100
101 virtual void SetMTU(int mtu) /*override*/;
102
103 virtual ::webrtc::StreamResult Read(::webrtc::ArrayView<uchar> data, uint64& read, int& error) /*override*/;
104
105 virtual ::webrtc::StreamResult
106 Write(::webrtc::ArrayView<uchar const> data, uint64& written, int& error) /*override*/;
107
108 virtual void Close() /*override*/;
109
110 virtual ::webrtc::StreamState GetState() const /*override*/;
111
112 virtual ::std::optional<::std::string_view> GetTlsCipherSuiteName() const /*override*/;
113
114 virtual bool GetSslCipherSuite(int* cipher_suite) const /*override*/;
115
116 virtual ::webrtc::SSLProtocolVersion GetSslVersion() const /*override*/;
117
118 virtual bool GetSslVersionBytes(int* version) const /*override*/;
119
120 virtual bool ExportSrtpKeyingMaterial(::webrtc::BufferT<uchar, 1>& keying_material) /*override*/;
121
122 virtual ushort GetPeerSignatureAlgorithm() const /*override*/;
123
124 virtual bool SetDtlsSrtpCryptoSuites(::std::vector<int> const& ciphers) /*override*/;
125
126 virtual bool GetDtlsSrtpCryptoSuite(int* crypto_suite) const /*override*/;
127
128 virtual bool IsTlsConnected() /*override*/;
129
130 virtual int GetRetransmissionCount() const /*override*/;
131
132 virtual bool SetSslGroupIds(::std::vector<ushort> const& groups) /*override*/;
133
134 virtual ushort GetSslGroupId() const /*override*/;
135 // NOLINTEND
136
137public:
138 // member functions
139 // NOLINTBEGIN
140 MCNAPI int BeginSSL();
141
142 MCNAPI void Cleanup(uchar alert);
143
144 MCNAPI int ContinueSSL();
145
146 MCNAPI void Error(::std::string_view context, int err, uchar alert, bool signal);
147
148 MCNAPI void MaybeSetTimeout();
149
150 MCNAPI void OnEvent(int events, int err);
151
153 ::std::unique_ptr<::webrtc::StreamInterface> stream,
154 ::absl::AnyInvocable<void(::webrtc::SSLHandshakeError)> handshake_error,
155 ::webrtc::FieldTrialsView const* field_trials
156 );
157
159 // NOLINTEND
160
161public:
162 // static functions
163 // NOLINTBEGIN
164 MCNAPI static int SSLVerifyCallback(::x509_store_ctx_st* store, void* arg);
165 // NOLINTEND
166
167public:
168 // constructor thunks
169 // NOLINTBEGIN
170 MCNAPI void* $ctor(
171 ::std::unique_ptr<::webrtc::StreamInterface> stream,
172 ::absl::AnyInvocable<void(::webrtc::SSLHandshakeError)> handshake_error,
173 ::webrtc::FieldTrialsView const* field_trials
174 );
175 // NOLINTEND
176
177public:
178 // destructor thunk
179 // NOLINTBEGIN
180 MCNAPI void $dtor();
181 // NOLINTEND
182
183public:
184 // virtual function thunks
185 // NOLINTBEGIN
186 MCNAPI void $SetIdentity(::std::unique_ptr<::webrtc::SSLIdentity> identity);
187
188 MCNAPI ::webrtc::SSLIdentity* $GetIdentityForTesting() const;
189
190 MCNAPI void $SetServerRole(::webrtc::SSLRole role);
191
192 MCNAPI ::webrtc::SSLPeerCertificateDigestError
193 $SetPeerCertificateDigest(::std::string_view digest_alg, ::webrtc::ArrayView<uchar const> digest_val);
194
195 MCNAPI ::std::unique_ptr<::webrtc::SSLCertChain> $GetPeerSSLCertChain() const;
196
197 MCNAPI int $StartSSL();
198
199 MCNAPI void $SetMode(::webrtc::SSLMode mode);
200
201 MCNAPI void $SetMaxProtocolVersion(::webrtc::SSLProtocolVersion version);
202
203 MCNAPI void $SetInitialRetransmissionTimeout(int timeout_ms);
204
205 MCNAPI void $SetMTU(int mtu);
206
207 MCNAPI ::webrtc::StreamResult $Read(::webrtc::ArrayView<uchar> data, uint64& read, int& error);
208
209 MCNAPI ::webrtc::StreamResult $Write(::webrtc::ArrayView<uchar const> data, uint64& written, int& error);
210
211 MCNAPI void $Close();
212
213 MCNAPI ::webrtc::StreamState $GetState() const;
214
215 MCNAPI ::std::optional<::std::string_view> $GetTlsCipherSuiteName() const;
216
217 MCNAPI bool $GetSslCipherSuite(int* cipher_suite) const;
218
219 MCNAPI ::webrtc::SSLProtocolVersion $GetSslVersion() const;
220
221 MCNAPI bool $GetSslVersionBytes(int* version) const;
222
224
225 MCNAPI ushort $GetPeerSignatureAlgorithm() const;
226
227 MCNAPI bool $SetDtlsSrtpCryptoSuites(::std::vector<int> const& ciphers);
228
229 MCNAPI bool $GetDtlsSrtpCryptoSuite(int* crypto_suite) const;
230
231 MCNAPI bool $IsTlsConnected();
232
233 MCNAPI int $GetRetransmissionCount() const;
234
235 MCNAPI bool $SetSslGroupIds(::std::vector<ushort> const& groups);
236
237 MCNAPI ushort $GetSslGroupId() const;
238
239
240 // NOLINTEND
241
242public:
243 // vftables
244 // NOLINTBEGIN
245 MCNAPI static void** $vftable();
246 // NOLINTEND
247};
248
249} // namespace webrtc
Definition AnyInvocable.h:8
Definition ArrayView.h:8
Definition BufferT.h:8
Definition FieldTrialsView.h:7
MCAPI void OnEvent(int events, int err)
MCAPI ushort $GetPeerSignatureAlgorithm() const
MCAPI void Error(::std::string_view context, int err, uchar alert, bool signal)
MCAPI::webrtc::StreamResult $Read(::webrtc::ArrayView< uchar > data, uint64 &read, int &error)
MCAPI::webrtc::StreamResult $Write(::webrtc::ArrayView< uchar const > data, uint64 &written, int &error)
MCAPI void $SetIdentity(::std::unique_ptr<::webrtc::SSLIdentity > identity)
MCAPI::webrtc::StreamState $GetState() const
MCAPI void $SetInitialRetransmissionTimeout(int timeout_ms)
MCAPI void $SetMTU(int mtu)
MCAPI bool $GetSslCipherSuite(int *cipher_suite) const
MCAPI bool VerifyPeerCertificate()
MCAPI::webrtc::SSLIdentity * $GetIdentityForTesting() const
MCAPI OpenSSLStreamAdapter(::std::unique_ptr<::webrtc::StreamInterface > stream, ::absl::AnyInvocable< void(::webrtc::SSLHandshakeError)> handshake_error, ::webrtc::FieldTrialsView const *field_trials)
MCAPI ::std::unique_ptr<::webrtc::SSLCertChain > $GetPeerSSLCertChain() const
MCAPI ushort $GetSslGroupId() const
MCAPI void Cleanup(uchar alert)
MCAPI bool $SetDtlsSrtpCryptoSuites(::std::vector< int > const &ciphers)
MCAPI bool $GetSslVersionBytes(int *version) const
MCAPI void $SetMode(::webrtc::SSLMode mode)
static MCAPI void ** $vftable()
MCAPI::webrtc::SSLProtocolVersion $GetSslVersion() const
MCAPI ::std::optional<::std::string_view > $GetTlsCipherSuiteName() const
MCAPI void * $ctor(::std::unique_ptr<::webrtc::StreamInterface > stream, ::absl::AnyInvocable< void(::webrtc::SSLHandshakeError)> handshake_error, ::webrtc::FieldTrialsView const *field_trials)
MCAPI bool $GetDtlsSrtpCryptoSuite(int *crypto_suite) const
MCAPI bool $SetSslGroupIds(::std::vector< ushort > const &groups)
MCAPI void $SetServerRole(::webrtc::SSLRole role)
MCAPI bool $ExportSrtpKeyingMaterial(::webrtc::BufferT< uchar, 1 > &keying_material)
MCAPI int $GetRetransmissionCount() const
MCAPI void $SetMaxProtocolVersion(::webrtc::SSLProtocolVersion version)
MCAPI::webrtc::SSLPeerCertificateDigestError $SetPeerCertificateDigest(::std::string_view digest_alg, ::webrtc::ArrayView< uchar const > digest_val)
static MCAPI int SSLVerifyCallback(::x509_store_ctx_st *store, void *arg)
Definition SSLCertChain.h:13
Definition SSLIdentity.h:14
Definition SSLStreamAdapter.h:25
Definition StreamInterface.h:12
Definition context.h:5
Definition Alias.h:14
Definition identity.h:7