27 typedef int (*plugin_auth_status_cb)(
struct lws_ss_handle *ss,
int status);
54 #if defined(LWS_WITH_SSPLUGINS)
55 typedef struct lws_ss_plugin {
56 struct lws_ss_plugin *next;
60 int (*create)(
struct lws_ss_handle *ss,
void *info,
61 plugin_auth_status_cb status);
67 int (*destroy)(
struct lws_ss_handle *ss);
71 int (*munge)(
struct lws_ss_handle *ss,
char *path,
108 LWSSSPOLF_OPPORTUNISTIC = (1 << 0),
110 LWSSSPOLF_NAILED_UP = (1 << 1),
112 LWSSSPOLF_URGENT_TX = (1 << 2),
114 LWSSSPOLF_URGENT_RX = (1 << 3),
116 LWSSSPOLF_TLS = (1 << 4),
118 LWSSSPOLF_LONG_POLL = (1 << 5),
120 LWSSSPOLF_AUTH_BEARER = (1 << 6),
122 LWSSSPOLF_HTTP_NO_CONTENT_LENGTH = (1 << 7),
124 LWSSSPOLF_QUIRK_NGHTTP2_END_STREAM = (1 << 8),
126 LWSSSPOLF_H2_QUIRK_OVERFLOWS_TXCR = (1 << 9),
128 LWSSSPOLF_H2_QUIRK_UNCLEAN_HPACK_STATE = (1 << 10),
130 LWSSSPOLF_HTTP_MULTIPART = (1 << 11),
136 LWSSSPOLF_HTTP_X_WWW_FORM_URLENCODED = (1 << 12),
138 LWSSSPOLF_LOCAL_SINK = (1 << 13),
140 LWSSSPOLF_WAKE_SUSPEND__VALIDITY = (1 << 14),
144 LWSSSPOLF_SERVER = (1 << 15),
146 LWSSSPOLF_ALLOW_REDIRECTS = (1 << 16),
148 LWSSSPOLF_HTTP_MULTIPART_IN = (1 << 17),
151 LWSSSPOLF_ATTR_LOW_LATENCY = (1 << 18),
153 LWSSSPOLF_ATTR_HIGH_THROUGHPUT = (1 << 19),
155 LWSSSPOLF_ATTR_HIGH_RELIABILITY = (1 << 20),
157 LWSSSPOLF_ATTR_LOW_COST = (1 << 21),
159 LWSSSPOLF_PERF = (1 << 22),
161 LWSSSPOLF_DIRECT_PROTO_STR = (1 << 23),
163 LWSSSPOLF_HTTP_CACHE_COOKIES = (1 << 24),
200 void *value__may_own_heap;
203 uint8_t value_length;
204 uint8_t value_is_http_token;
205 #if defined(LWS_WITH_SS_DIRECT_PROTOCOL_STR)
206 uint8_t name_on_lws_heap:1;
208 uint8_t value_on_lws_heap:1;
209 #if defined(LWS_WITH_SECURE_STREAMS_PROXY_API)
210 uint8_t pending_onward:1;
230 const char *streamtype;
255 const char *payload_fmt;
256 const char *socks5_proxy;
265 #if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_WS)
276 const char *multipart_name;
277 const char *multipart_filename;
278 const char *multipart_content_type;
280 const char *blob_header[_LWSSS_HBI_COUNT];
281 const char *auth_preamble;
291 const char *subprotocol;
297 uint16_t resp_expect;
298 uint8_t count_respmap;
299 uint8_t fail_redirect:1;
304 #if defined(LWS_ROLE_MQTT)
308 const char *subscribe;
310 const char *will_topic;
311 const char *will_message;
327 #if defined(LWS_WITH_SSPLUGINS)
329 struct lws_ss_plugin *plugins[2];
330 const void *plugins_info[2];
333 #if defined(LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
335 const char *aws_region;
336 const char *aws_service;
359 uint32_t proxy_buflen_rxflow_on_above;
360 uint32_t proxy_buflen_rxflow_off_below;
363 uint32_t client_buflen_rxflow_on_above;
364 uint32_t client_buflen_rxflow_off_below;
381 #if !defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY)
387 LWS_VISIBLE LWS_EXTERN
int
388 lws_ss_policy_parse_begin(
struct lws_context *context,
int overlay);
390 LWS_VISIBLE LWS_EXTERN
int
391 lws_ss_policy_parse_abandon(
struct lws_context *context);
393 LWS_VISIBLE LWS_EXTERN
int
394 lws_ss_policy_parse(
struct lws_context *context,
const uint8_t *buf,
size_t len);
396 LWS_VISIBLE LWS_EXTERN
int
397 lws_ss_policy_overlay(
struct lws_context *context,
const char *overlay);
405 lws_ss_policy_get(
struct lws_context *context);
408 lws_ss_auth_get(
struct lws_context *context);
Definition: lws-secure-streams-policy.h:82
uint32_t us_decay_unit
Definition: lws-secure-streams-policy.h:93
uint8_t min_contributors
Definition: lws-secure-streams-policy.h:95
uint64_t us_schedule
Definition: lws-secure-streams-policy.h:90
const char * report
Definition: lws-secure-streams-policy.h:87
Definition: lws-retry.h:25
Definition: lws-secure-streams-policy.h:225
Definition: lws-secure-streams-policy.h:214
Definition: lws-secure-streams-policy.h:247
uint32_t flags
Definition: lws-secure-streams-policy.h:369
uint8_t metadata_count
Definition: lws-secure-streams-policy.h:373
uint32_t timeout_ms
Definition: lws-secure-streams-policy.h:367
const lws_ss_x509_t * cert
Definition: lws-secure-streams-policy.h:349
const char * streamtype
Definition: lws-secure-streams-policy.h:249
const char * rideshare_streamtype
Definition: lws-secure-streams-policy.h:252
uint8_t client_cert
Definition: lws-secure-streams-policy.h:375
const char * endpoint
Definition: lws-secure-streams-policy.h:251
const lws_ss_trust_store_t * store
Definition: lws-secure-streams-policy.h:345
const lws_retry_bo_t * retry_bo
Definition: lws-secure-streams-policy.h:356
uint16_t port
Definition: lws-secure-streams-policy.h:371
uint8_t protocol
Definition: lws-secure-streams-policy.h:374
uint32_t client_buflen
Definition: lws-secure-streams-policy.h:362
const lws_ss_x509_t * key
Definition: lws-secure-streams-policy.h:351
uint32_t proxy_buflen
Definition: lws-secure-streams-policy.h:358
Definition: lws-secure-streams-policy.h:168
Definition: lws-secure-streams-policy.h:99
uint8_t keep
Definition: lws-secure-streams-policy.h:104
size_t ca_der_len
Definition: lws-secure-streams-policy.h:103
const uint8_t * ca_der
Definition: lws-secure-streams-policy.h:102
const char * vhost_name
Definition: lws-secure-streams-policy.h:101