1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
Commit graph

2711 commits

Author SHA1 Message Date
Andy Green
713aab17f8 additional vhost member accessors 2017-12-01 11:37:35 +08:00
Ralph Lessmann
33b40e0ae4 mingw: fixes 2017-12-01 11:37:33 +08:00
Andy Green
0724f8982a h2: fix multiple cookie header handling
Firefox 57 at least still sends multiple cookie: headers over h2.
Correctly aggregate them with a ';' delimiter.
2017-12-01 11:12:37 +08:00
Andy Green
53bbc6be33 cmake: dont build ssh stuff if no SSL enabled 2017-11-28 07:57:36 +08:00
Pavel Shramov
66916394ed lib: Spelling fixes based on debian packaging 2017-11-28 07:46:22 +08:00
Andy Green
2b30c82b9e lejp: dont underflow with anonymous braces 2017-11-26 19:17:11 +08:00
Andy Green
a76e9aad11 lejp: handle empty arrays 2017-11-26 19:17:11 +08:00
Andy Green
09f59ba3b8 lwjp-conf: quieten init logging 2017-11-26 19:17:11 +08:00
Andy Green
1f37ec0be9 add selfsigned cert generation api 2017-11-26 19:17:11 +08:00
Andy Green
a798db0e2b vhost: check cert validity dates
After startup, and once per day, check the validity dates on our ssl certs,
and broadcast callbacks with the information so interested plugins can
know.

If our clock is < May 2016, we don't try to judge the certs, because clearly
we don't know what time it is.
2017-11-26 19:17:10 +08:00
Andy Green
fb4397f841 cleanups 2017-11-26 19:17:10 +08:00
Adam Wolk
2befafca77 cmake: only generate test cert when SERVER and TESTAPPS enabled
apart from LWS_WITHOUT_TEST_SERVER the test server will also not be
built if LWS_WITHOUT_TESTAPPS or LWS_WITHOUT_SERVER is defined,
we update the CMake configuration to skip cert generation and
installation in those cases.

Signed-off-by: Adam Wolk <adam.wolk@koparo.com>
2017-11-26 19:17:06 +08:00
Andy Green
0ed131e6a7 post-demo: some platforms cant handle NULL vsnprintf strings 2017-11-26 19:16:58 +08:00
Petar Paradzik
0060af62c5 mbedtls: add support for optional peer certificate
Check for LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED...

AG: Fix missing stanza needed to confirm client cert needed at all

Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>
2017-11-26 19:16:17 +08:00
Petar Paradzik
121d5d5940 mbedtls: client cert workaround
https://github.com/warmcat/libwebsockets/pull/1075#issuecomment-340730880
2017-11-26 19:16:17 +08:00
Petar Paradzik
a552de400a ssl: add support for checking cert existance and verification
Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>
2017-11-26 19:16:17 +08:00
Petar Paradzik
2f7bd10487 Subject: ssl: fix source and destination overlap in strcpy
Use memmove instead...

AG add explanation for union name[] member length.

Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>
2017-11-26 19:16:17 +08:00
Petar Paradzik
939436b793 Subject: ssl: fix x509 memory leaks
Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>
2017-11-26 19:16:17 +08:00
Andy Green
00ffebfd24 tls: add x509 query api
This adds a single api on lws that allows querying elements from the
peer certificate on a connection.

The api works the same regardless of the TLS backend.
2017-11-26 19:16:17 +08:00
Andy Green
41d1326da0 appveyor artifacts debug 2017-11-26 19:16:17 +08:00
Andy Green
be525cb624 appveyor: Enable 64-bit build with OpenSSL and HTTP2
Fix warnings found from that

Introduce lws_ptr_diff(head, tail) helper to normalize
pointers to char *, do the subtraction and cast the
result to int.
2017-11-26 19:16:17 +08:00
Andy Green
ae8915861a client: handle bio_create failing
Plus some line length cleaning
2017-11-26 19:16:17 +08:00
Andy Green
1d5bd23268 bsd: support foreign thread event changes while in poll wait
https://github.com/warmcat/libwebsockets/issues/314
2017-11-26 19:16:17 +08:00
Andy Green
74fddbc09e cancel_service: change to event-loop agnostic implementation
- Add platform helpers for pipe creation.

 - Change the direct-to-fds implementation to create a wsi for each
   pt and use the normal apis to bind it to the event loop.

 - Modifiy context creation and destroy to create and remove the
   event pipe wsis.

 - Create the event pipe wsis during context create if using the
   default poll() event loop, or when the other event loops start
   otherwise.

 - Add handler that calls back user code with
   LWS_CALLBACK_EVENT_WAIT_CANCELLED

This patch allows you to call `lws_cancel_service(struct lws_context *context)`
from another thread.

It's very cheap for the other thread to call and is safe without
locking.

Every use protocol receives a LWS_CALLBACK_EVENT_WAIT_CANCELLED from
the main thread serialized normally in the event loop.
2017-11-26 19:16:17 +08:00
Andy Green
97cd393649 cmake: refactor options into groups and move to top of file 2017-11-26 19:16:17 +08:00
Andy Green
c2488dd4a3 client-cert-required 2017-11-26 19:16:17 +08:00
Andy Green
fa73d31558 docs: update discussion in test-apps README about plugin inclusion 2017-11-26 19:16:14 +08:00
Andy Green
4ff8e866d5 docs: fixup links broken by move to READMEs 2017-11-26 19:16:06 +08:00
Andy Green
b1934d6b64 client-certs: add related docs 2017-11-26 19:07:12 +08:00
Andy Green
dbb6c34cf2 RFC7638: JWK thumbprint 2017-11-26 19:07:12 +08:00
Andy Green
278e520479 JWK + JWS: JSON Web Keys RFC7517 + Signatures support RFC7515
This adds some optional apis around JSON Web Keys and JSON Web Signatures.

HMAC SHA256/384/512 and RSA + SHA256/384/512 are supported.

This also add a new "LWS_WITH_SELFTESTS" that enables the selftests.
2017-11-26 19:07:12 +08:00
Andy Green
c32a22c20b lws-genrsa: add resuable backend-independent rsa decrypt in tls/ and migrate sshd to it 2017-11-10 16:56:44 +08:00
Andy Green
dd3e5619cb lws_genhash: add HMAC
Like the simple hashes, these work the same regardless of if the backend is
OpenSSL or mbedTLS.

Also move into ./lib/tls/ and split into two specific to mbedtls or openssl
backends.
2017-11-10 16:56:44 +08:00
Andy Green
aebf187b98 base64: add decode variant that uses in_len instead of NUL term 2017-11-10 16:56:44 +08:00
Andy Green
2639b276f4 base64: add URL encode variant and allow decode of it
The URL encode variant is the same, except + is coded as -, and / is coded as _
to avoid urlencoding when the base64 is used in situations that are urlencoded.
2017-11-10 16:56:44 +08:00
Andy Green
46ee0713de hpack: pseudoheader check improvement 2017-11-10 11:01:25 +08:00
Andy Green
6bc92f7592 wrapper: untrash partial sends before WANT
1) The original wrapper logic for accounting for partial
sends on mbedtls is broken... adapt it

2) mbedtls has an additional restriction you MUST come
back to retry with EXACTLY the unsent part that you
originally asked for, or it loses coherency in the TLS
tunnel.

3) the wrapper is inconsistent between read WANT state
dynamically reported from mbedtls apis and the
SSL_want() api results.  Check both on read.
2017-11-10 10:59:58 +08:00
Andy Green
7e4c67e29d h2: never send more than file length 2017-11-10 10:59:58 +08:00
Andy Green
78ad6f9705 hpack: dont reinterpret lws index for idx hdr 6 inc 2017-11-10 10:59:58 +08:00
Andy Green
c7b536764f coverity-fixes 2017-11-10 10:59:58 +08:00
Andy Green
8c35e14965 test-apps: mirror echo mode 2017-11-05 07:09:06 +08:00
Andy Green
b119f2c471 service: only apply trunc holds rx rule for http2 2017-11-05 07:08:50 +08:00
Andy Green
91ed21d487 rxflow: fix second draining path 2017-11-05 07:08:41 +08:00
Andy Green
7e1c8876e6 service: stop trying to find service TID after first time 2017-11-05 07:08:29 +08:00
Andy Green
fac510fbc2 lws_ring: add lws_ring_dump() api 2017-11-05 07:08:20 +08:00
Andy Green
95f1cd6ea8 WITH_STATS: fix signed build warnings 2017-11-05 07:07:16 +08:00
Andy Green
a1ce8feba2 mirror: default to empty name if mirror with no arg 2017-11-03 11:48:05 +08:00
Andy Green
dba00cff6f mirror: fix spin on close 2017-11-03 11:47:57 +08:00
Andy Green
462e449cd6 lws_hdr_copy: protect against garbage 2017-11-02 08:11:06 +08:00
Andy Green
d30597f728 ah: increase timeout sanity check to ah_idle + 60 2017-10-31 07:02:51 +08:00