💾 Archived View for gmi.noulin.net › gitRepositories › liveserver › file › utilities.h.gmi captured on 2023-01-29 at 13:16:59. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
utilities.h (2376B)
1 /* 2 utilities.h 3 4 Jonathan D. Hall - jhall@futuresouth.us 5 Copyright 2015 Future South Technologies 6 7 This file is part of libwebsock2. 8 9 libwebsock2 is free software: you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation, either version 3 of the License, or 12 (at your option) any later version. 13 14 libwebsock2 is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with libwebsock2. If not, see <http://www.gnu.org/licenses/>. 21 22 */ 23 24 /* 25 * SHA1 functions written by Paul E. Jones <paulej@packetizer.com> 26 * Copyright (C) 1998, 2009 - All Rights Reserved 27 */ 28 29 #ifndef _utilities_h 30 #define _utilities_h 31 32 #include "libsheepyObject.h" 33 34 typedef struct SHA1Context 35 { 36 unsigned Message_Digest[5]; /* Message Digest (output) */ 37 38 unsigned Length_Low; /* Message length in bits */ 39 unsigned Length_High; /* Message length in bits */ 40 41 unsigned char Message_Block[64]; /* 512-bit message blocks */ 42 int Message_Block_Index; /* Index into message block array */ 43 44 int Computed; /* Is the digest computed? */ 45 int Corrupted; /* Is the message digest corruped? */ 46 } SHA1Context; 47 48 49 /* UTF prototypes */ 50 51 int validate_utf8_sequence(uint8_t *s); 52 uint16_t lws_htobe16(uint16_t x); 53 uint16_t lws_be16toh(uint16_t x); 54 uint64_t lws_htobe64(uint64_t x); 55 uint64_t lws_be64toh(uint64_t x); 56 57 58 /* Base64 prototypes */ 59 60 int base64_encode(unsigned char *source, size_t sourcelen, char *target, size_t targetlen); 61 void _base64_encode_triple(unsigned char triple[3], char result[4]); 62 int _base64_char_value(char base64char); 63 int _base64_decode_triple(char quadruple[4], unsigned char *result); 64 size_t base64_decode(char *source, unsigned char *target, size_t targetlen); 65 66 /* SHA1 prototypes */ 67 68 void SHA1Reset(SHA1Context *); 69 int SHA1Result(SHA1Context *); 70 void SHA1Input( SHA1Context *, const unsigned char *, unsigned); 71 void SHA1ProcessMessageBlock(SHA1Context *); 72 void SHA1PadMessage(SHA1Context *); 73 74 #endif /* utilities_h */