diff options
| author | Garrett D'Amore <garrett@damore.org> | 2025-01-01 13:05:15 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2025-01-01 13:05:15 -0800 |
| commit | 61d581e2343af9677815fa7dc13e8a36a6f5ec3e (patch) | |
| tree | 75d9b4d852333c834ee75783e7ba677a0b2ff774 /src/supplemental/websocket/sha1.h | |
| parent | 0d23af92531b7c0dd6d7b74c73c1a8c4811c7d13 (diff) | |
| download | nng-61d581e2343af9677815fa7dc13e8a36a6f5ec3e.tar.gz nng-61d581e2343af9677815fa7dc13e8a36a6f5ec3e.tar.bz2 nng-61d581e2343af9677815fa7dc13e8a36a6f5ec3e.zip | |
sha1: move this to private websocket API
Nothing else uses it, and nothing else *should* use it because SHA1 is insecure.
WebSockets have to use it by definition, unfortunately. The implementation is
not very fast, but doesn't have to be for the use case of websocket keying.
Diffstat (limited to 'src/supplemental/websocket/sha1.h')
| -rw-r--r-- | src/supplemental/websocket/sha1.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/supplemental/websocket/sha1.h b/src/supplemental/websocket/sha1.h new file mode 100644 index 00000000..43b6f20d --- /dev/null +++ b/src/supplemental/websocket/sha1.h @@ -0,0 +1,26 @@ +// +// Copyright 2025 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2018 Capitar IT Group BV <info@capitar.com> +// +// This software is supplied under the terms of the MIT License, a +// copy of which should be located in the distribution where this +// file was obtained (LICENSE.txt). A copy of the license may also be +// found online at https://opensource.org/licenses/MIT. +// + +#ifndef NNG_SUPPLEMENTAL_WEBSOCKET_SHA1_H +#define NNG_SUPPLEMENTAL_WEBSOCKET_SHA1_H + +typedef struct { + uint32_t digest[5]; // resulting digest + uint64_t len; // length in bits + uint8_t blk[64]; // message block + int idx; // index of next byte in block +} nni_sha1_ctx; + +extern void nni_sha1_init(nni_sha1_ctx *); +extern void nni_sha1_update(nni_sha1_ctx *, const void *, size_t); +extern void nni_sha1_final(nni_sha1_ctx *, uint8_t[20]); +extern void nni_sha1(const void *, size_t, uint8_t[20]); + +#endif // NNG_SUPPLEMENTAL_WEBSOCKET_SHA1_H |
