mirror of
				https://github.com/pocoproject/poco.git
				synced 2025-10-26 10:32:56 +01:00 
			
		
		
		
	upgrade bundled expat to 2.2.3
This commit is contained in:
		| @@ -2,9 +2,8 @@ | ||||
|  * siphash.h - SipHash-2-4 in a single header file | ||||
|  * -------------------------------------------------------------------------- | ||||
|  * Derived by William Ahern from the reference implementation[1] published[2] | ||||
|  * by Jean-Philippe Aumasson and Daniel J. Berstein. Licensed in kind. | ||||
|  * by Jean-Philippe Aumasson and Daniel J. Berstein. | ||||
|  * Minimal changes by Sebastian Pipping on top, details below. | ||||
|  * Minimal changes by Sebastian Pipping and Victor Stinner on top, see below. | ||||
|  * Licensed under the CC0 Public Domain Dedication license. | ||||
|  * | ||||
|  * 1. https://www.131002.net/siphash/siphash24.c | ||||
| @@ -12,14 +11,25 @@ | ||||
|  * -------------------------------------------------------------------------- | ||||
|  * HISTORY: | ||||
|  * | ||||
|  * 2017-06-10  (Sebastian Pipping) | ||||
|  * 2017-07-25  (Vadim Zeitlin) | ||||
|  *   - Fix use of SIPHASH_MAIN macro | ||||
|  * | ||||
|  * 2017-07-05  (Sebastian Pipping) | ||||
|  *   - Use _SIP_ULL macro to not require a C++11 compiler if compiled as C++ | ||||
|  *   - Add const qualifiers at two places | ||||
|  *   - Ensure <=80 characters line length (assuming tab width 4) | ||||
|  * | ||||
|  * 2017-06-23  (Victor Stinner) | ||||
|  *   - Address Win64 compile warnings | ||||
|  * | ||||
|  * 2017-06-18  (Sebastian Pipping) | ||||
|  *   - Clarify license note in the header | ||||
|  *   - Address C89 issues: | ||||
|  *     - Stop using inline keyword (and let compiler decide) | ||||
|  *     - Turn integer suffix ULL to UL | ||||
|  *     - Replace _Bool by int | ||||
|  *     - Turn macro siphash24 into a function | ||||
|  *     - Address invalid conversion (void pointer) by explicit cast | ||||
|  *   - Address lack of stdint.h for Visual Studio 2003 to 2008 | ||||
|  *   - Always expose sip24_valid (for self-tests) | ||||
|  * | ||||
|  * 2012-11-04 - Born.  (William Ahern) | ||||
| @@ -76,7 +86,23 @@ | ||||
| #define SIPHASH_H | ||||
|  | ||||
| #include <stddef.h> /* size_t */ | ||||
| #include <stdint.h> /* uint64_t uint32_t uint8_t */ | ||||
|  | ||||
| #if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER < 1600) | ||||
|   /* For vs2003/7.1 up to vs2008/9.0; _MSC_VER 1600 is vs2010/10.0 */ | ||||
|   typedef unsigned __int8   uint8_t; | ||||
|   typedef unsigned __int32 uint32_t; | ||||
|   typedef unsigned __int64 uint64_t; | ||||
| #else | ||||
|  #include <stdint.h> /* uint64_t uint32_t uint8_t */ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Workaround to not require a C++11 compiler for using ULL suffix | ||||
|  * if this code is included and compiled as C++; related GCC warning is: | ||||
|  * warning: use of C++11 long long integer constant [-Wlong-long] | ||||
|  */ | ||||
| #define _SIP_ULL(high, low)  (((uint64_t)high << 32) | low) | ||||
|  | ||||
|  | ||||
| #define SIP_ROTL(x, b) (uint64_t)(((x) << (b)) | ( (x) >> (64 - (b)))) | ||||
| @@ -158,11 +184,12 @@ static void sip_round(struct siphash *H, const int rounds) { | ||||
| } /* sip_round() */ | ||||
|  | ||||
|  | ||||
| static struct siphash *sip24_init(struct siphash *H, const struct sipkey *key) { | ||||
| 	H->v0 = 0x736f6d6570736575UL ^ key->k[0]; | ||||
| 	H->v1 = 0x646f72616e646f6dUL ^ key->k[1]; | ||||
| 	H->v2 = 0x6c7967656e657261UL ^ key->k[0]; | ||||
| 	H->v3 = 0x7465646279746573UL ^ key->k[1]; | ||||
| static struct siphash *sip24_init(struct siphash *H, | ||||
| 		const struct sipkey *key) { | ||||
| 	H->v0 = _SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; | ||||
| 	H->v1 = _SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; | ||||
| 	H->v2 = _SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; | ||||
| 	H->v3 = _SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; | ||||
|  | ||||
| 	H->p = H->buf; | ||||
| 	H->c = 0; | ||||
| @@ -173,7 +200,8 @@ static struct siphash *sip24_init(struct siphash *H, const struct sipkey *key) { | ||||
|  | ||||
| #define sip_endof(a) (&(a)[sizeof (a) / sizeof *(a)]) | ||||
|  | ||||
| static struct siphash *sip24_update(struct siphash *H, const void *src, size_t len) { | ||||
| static struct siphash *sip24_update(struct siphash *H, const void *src, | ||||
| 		size_t len) { | ||||
| 	const unsigned char *p = (const unsigned char *)src, *pe = p + len; | ||||
| 	uint64_t m; | ||||
|  | ||||
| @@ -198,7 +226,7 @@ static struct siphash *sip24_update(struct siphash *H, const void *src, size_t l | ||||
|  | ||||
|  | ||||
| static uint64_t sip24_final(struct siphash *H) { | ||||
| 	char left = H->p - H->buf; | ||||
| 	const char left = (char)(H->p - H->buf); | ||||
| 	uint64_t b = (H->c + left) << 56; | ||||
|  | ||||
| 	switch (left) { | ||||
| @@ -222,7 +250,8 @@ static uint64_t sip24_final(struct siphash *H) { | ||||
| } /* sip24_final() */ | ||||
|  | ||||
|  | ||||
| static uint64_t siphash24(const void *src, size_t len, const struct sipkey *key) { | ||||
| static uint64_t siphash24(const void *src, size_t len, | ||||
| 		const struct sipkey *key) { | ||||
| 	struct siphash state = SIPHASH_INITIALIZER; | ||||
| 	return sip24_final(sip24_update(sip24_init(&state, key), src, len)); | ||||
| } /* siphash24() */ | ||||
| @@ -310,10 +339,11 @@ static int sip24_valid(void) { | ||||
| 	struct sipkey k; | ||||
| 	size_t i; | ||||
|  | ||||
| 	sip_tokey(&k, "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017"); | ||||
| 	sip_tokey(&k, "\000\001\002\003\004\005\006\007\010\011" | ||||
| 			"\012\013\014\015\016\017"); | ||||
|  | ||||
| 	for (i = 0; i < sizeof in; ++i) { | ||||
| 		in[i] = i; | ||||
| 		in[i] = (unsigned char)i; | ||||
|  | ||||
| 		if (siphash24(in, i, &k) != SIP_U8TO64_LE(vectors[i])) | ||||
| 			return 0; | ||||
| @@ -323,12 +353,12 @@ static int sip24_valid(void) { | ||||
| } /* sip24_valid() */ | ||||
|  | ||||
|  | ||||
| #if SIPHASH_MAIN | ||||
| #ifdef SIPHASH_MAIN | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(void) { | ||||
| 	int ok = sip24_valid(); | ||||
| 	const int ok = sip24_valid(); | ||||
|  | ||||
| 	if (ok) | ||||
| 		puts("OK"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Günter Obiltschnig
					Günter Obiltschnig