27typedef int (*plugin_auth_status_cb)(
struct lws_ss_handle *ss,
int status);
54#if defined(LWS_WITH_SSPLUGINS)
55typedef 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),
165 LWSSSPOLF_PRIORITIZE_READS = (1 << 25),
174 const lws_ss_x509_t *ssx509[6];
176} lws_ss_trust_store_t;
202 void *value__may_own_heap;
205 uint8_t value_length;
206 uint8_t value_is_http_token;
207#if defined(LWS_WITH_SS_DIRECT_PROTOCOL_STR)
208 uint8_t name_on_lws_heap:1;
210 uint8_t value_on_lws_heap:1;
211#if defined(LWS_WITH_SECURE_STREAMS_PROXY_API)
212 uint8_t pending_onward:1;
219} lws_ss_http_respmap_t;
232 const char *streamtype;
257 const char *payload_fmt;
258 const char *socks5_proxy;
259 lws_ss_metadata_t *metadata;
260 const lws_metric_policy_t *metrics;
261 const lws_ss_auth_t *auth;
267#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_WS)
278 const char *multipart_name;
279 const char *multipart_filename;
280 const char *multipart_content_type;
282 const char *blob_header[_LWSSS_HBI_COUNT];
283 const char *auth_preamble;
285 const lws_ss_http_respmap_t *respmap;
293 const char *subprotocol;
299 uint16_t resp_expect;
300 uint8_t count_respmap;
301 uint8_t fail_redirect:1;
306#if defined(LWS_ROLE_MQTT)
310 const char *subscribe;
312 const char *will_topic;
313 const char *will_message;
315 const char *birth_topic;
316 const char *birth_message;
324 uint8_t birth_retain;
335#if defined(LWS_WITH_SSPLUGINS)
337 struct lws_ss_plugin *plugins[2];
338 const void *plugins_info[2];
341#if defined(LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
343 const char *aws_region;
344 const char *aws_service;
367 uint32_t proxy_buflen_rxflow_on_above;
368 uint32_t proxy_buflen_rxflow_off_below;
371 uint32_t client_buflen_rxflow_on_above;
372 uint32_t client_buflen_rxflow_off_below;
389#if !defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY)
395LWS_VISIBLE LWS_EXTERN
int
396lws_ss_policy_parse_begin(
struct lws_context *context,
int overlay);
398LWS_VISIBLE LWS_EXTERN
int
399lws_ss_policy_parse_abandon(
struct lws_context *context);
401LWS_VISIBLE LWS_EXTERN
int
402lws_ss_policy_parse(
struct lws_context *context,
const uint8_t *buf,
size_t len);
404LWS_VISIBLE LWS_EXTERN
int
405lws_ss_policy_overlay(
struct lws_context *context,
const char *overlay);
412LWS_VISIBLE LWS_EXTERN
const lws_ss_policy_t *
413lws_ss_policy_get(
struct lws_context *context);
415LWS_VISIBLE LWS_EXTERN
const lws_ss_auth_t *
416lws_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-secure-streams-policy.h:227
Definition lws-secure-streams-policy.h:216
Definition lws-secure-streams-policy.h:249
uint32_t flags
Definition lws-secure-streams-policy.h:377
uint8_t metadata_count
Definition lws-secure-streams-policy.h:381
uint32_t timeout_ms
Definition lws-secure-streams-policy.h:375
const lws_ss_x509_t * cert
Definition lws-secure-streams-policy.h:357
const char * streamtype
Definition lws-secure-streams-policy.h:251
const char * rideshare_streamtype
Definition lws-secure-streams-policy.h:254
uint8_t client_cert
Definition lws-secure-streams-policy.h:383
const char * endpoint
Definition lws-secure-streams-policy.h:253
const lws_ss_trust_store_t * store
Definition lws-secure-streams-policy.h:353
const lws_retry_bo_t * retry_bo
Definition lws-secure-streams-policy.h:364
uint16_t port
Definition lws-secure-streams-policy.h:379
uint8_t protocol
Definition lws-secure-streams-policy.h:382
uint32_t client_buflen
Definition lws-secure-streams-policy.h:370
const lws_ss_x509_t * key
Definition lws-secure-streams-policy.h:359
uint32_t proxy_buflen
Definition lws-secure-streams-policy.h:366
Definition lws-secure-streams-policy.h:170
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