LeviLamina
Loading...
Searching...
No Matches
SSLStreamAdapter.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/rtc/SSLHandshakeError.h"
8#include "mc/external/rtc/SSLMode.h"
9#include "mc/external/rtc/SSLPeerCertificateDigestError.h"
10#include "mc/external/rtc/SSLProtocolVersion.h"
11#include "mc/external/rtc/SSLRole.h"
12#include "mc/external/rtc/StreamInterface.h"
13
14// auto generated forward declare list
15// clang-format off
16namespace rtc { class SSLCertChain; }
17namespace rtc { class SSLIdentity; }
18// clang-format on
19
20namespace rtc {
21
22class SSLStreamAdapter : public ::rtc::StreamInterface {
23public:
24 // member variables
25 // NOLINTBEGIN
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 SSLStreamAdapter& operator=(SSLStreamAdapter const&);
32 SSLStreamAdapter(SSLStreamAdapter const&);
33 SSLStreamAdapter();
34
35public:
36 // virtual functions
37 // NOLINTBEGIN
38 virtual ~SSLStreamAdapter() /*override*/;
39
40 virtual void SetIdentity(::std::unique_ptr<::rtc::SSLIdentity>) = 0;
41
42 virtual ::rtc::SSLIdentity* GetIdentityForTesting() const = 0;
43
44 virtual void SetServerRole(::rtc::SSLRole) = 0;
45
46 virtual void SetMode(::rtc::SSLMode) = 0;
47
48 virtual void SetMaxProtocolVersion(::rtc::SSLProtocolVersion) = 0;
49
50 virtual void SetInitialRetransmissionTimeout(int) = 0;
51
52 virtual int StartSSL() = 0;
53
54 virtual bool
55 SetPeerCertificateDigest(::std::string_view, uchar const*, uint64, ::rtc::SSLPeerCertificateDigestError*) = 0;
56
57 virtual ::std::unique_ptr<::rtc::SSLCertChain> GetPeerSSLCertChain() const = 0;
58
59 virtual bool GetSslCipherSuite(int* cipher_suite);
60
61 virtual ::rtc::SSLProtocolVersion GetSslVersion() const = 0;
62
63 virtual bool GetSslVersionBytes(int*) const = 0;
64
65 virtual bool ExportKeyingMaterial(
66 ::std::string_view label,
67 uchar const* context,
68 uint64 context_len,
69 bool use_context,
70 uchar* result,
71 uint64 result_len
72 );
73
74 virtual ushort GetPeerSignatureAlgorithm() const = 0;
75
76 virtual bool SetDtlsSrtpCryptoSuites(::std::vector<int> const& crypto_suites);
77
78 virtual bool GetDtlsSrtpCryptoSuite(int* crypto_suite);
79
80 virtual bool IsTlsConnected() = 0;
81 // NOLINTEND
82
83public:
84 // static functions
85 // NOLINTBEGIN
86 MCNAPI static ::std::unique_ptr<::rtc::SSLStreamAdapter> Create(
87 ::std::unique_ptr<::rtc::StreamInterface> stream,
88 ::absl::AnyInvocable<void(::rtc::SSLHandshakeError)> handshake_error
89 );
90
91 MCNAPI static ::std::string SslCipherSuiteToName(int cipher_suite);
92 // NOLINTEND
93
94public:
95 // destructor thunk
96 // NOLINTBEGIN
97 MCNAPI void $dtor();
98 // NOLINTEND
99
100public:
101 // virtual function thunks
102 // NOLINTBEGIN
103 MCNAPI bool $GetSslCipherSuite(int* cipher_suite);
104
106 ::std::string_view label,
107 uchar const* context,
108 uint64 context_len,
109 bool use_context,
110 uchar* result,
111 uint64 result_len
112 );
113
114 MCNAPI bool $SetDtlsSrtpCryptoSuites(::std::vector<int> const& crypto_suites);
115
116 MCNAPI bool $GetDtlsSrtpCryptoSuite(int* crypto_suite);
117
118
119 // NOLINTEND
120
121public:
122 // vftables
123 // NOLINTBEGIN
124 MCNAPI static void** $vftable();
125 // NOLINTEND
126};
127
128} // namespace rtc
Definition AnyInvocable.h:8
Definition SSLCertChain.h:13
Definition SSLIdentity.h:14
MCAPI bool $GetDtlsSrtpCryptoSuite(int *crypto_suite)
MCAPI bool $SetDtlsSrtpCryptoSuites(::std::vector< int > const &crypto_suites)
MCAPI bool $ExportKeyingMaterial(::std::string_view label, uchar const *context, uint64 context_len, bool use_context, uchar *result, uint64 result_len)
static MCAPI ::std::unique_ptr<::rtc::SSLStreamAdapter > Create(::std::unique_ptr<::rtc::StreamInterface > stream, ::absl::AnyInvocable< void(::rtc::SSLHandshakeError)> handshake_error)
static MCAPI void ** $vftable()
MCAPI bool $GetSslCipherSuite(int *cipher_suite)
static MCAPI ::std::string SslCipherSuiteToName(int cipher_suite)
Definition StreamInterface.h:11
Definition context.h:5
Definition Alias.h:14