summaryrefslogtreecommitdiff
path: root/libs/assimp/contrib/unzip/crypt.h
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-04-16 11:55:09 -0500
committersanine <sanine.not@pm.me>2022-04-16 11:55:09 -0500
commitdb81b925d776103326128bf629cbdda576a223e7 (patch)
tree58bea8155c686733310009f6bed7363f91fbeb9d /libs/assimp/contrib/unzip/crypt.h
parent55860037b14fb3893ba21cf2654c83d349cc1082 (diff)
move 3rd-party librarys into libs/ and add built-in honeysuckle
Diffstat (limited to 'libs/assimp/contrib/unzip/crypt.h')
-rw-r--r--libs/assimp/contrib/unzip/crypt.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/libs/assimp/contrib/unzip/crypt.h b/libs/assimp/contrib/unzip/crypt.h
new file mode 100644
index 0000000..78146eb
--- /dev/null
+++ b/libs/assimp/contrib/unzip/crypt.h
@@ -0,0 +1,63 @@
+/* crypt.h -- base code for traditional PKWARE encryption
+ Version 1.01e, February 12th, 2005
+
+ Copyright (C) 1998-2005 Gilles Vollant
+ Modifications for Info-ZIP crypting
+ Copyright (C) 2003 Terry Thorsen
+
+ This code is a modified version of crypting code in Info-ZIP distribution
+
+ Copyright (C) 1990-2000 Info-ZIP. All rights reserved.
+
+ This program is distributed under the terms of the same license as zlib.
+ See the accompanying LICENSE file for the full text of the license.
+*/
+
+#ifndef _MINICRYPT_H
+#define _MINICRYPT_H
+
+#if ZLIB_VERNUM < 0x1270
+#if !defined(Z_U4)
+typedef unsigned long z_crc_t;
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define RAND_HEAD_LEN 12
+
+/***************************************************************************/
+
+#define zdecode(pkeys,pcrc_32_tab,c) \
+ (update_keys(pkeys,pcrc_32_tab, c ^= decrypt_byte(pkeys)))
+
+#define zencode(pkeys,pcrc_32_tab,c,t) \
+ (t = decrypt_byte(pkeys), update_keys(pkeys,pcrc_32_tab,c), t^(c))
+
+/***************************************************************************/
+
+/* Return the next byte in the pseudo-random sequence */
+uint8_t decrypt_byte(uint32_t *pkeys);
+
+/* Update the encryption keys with the next byte of plain text */
+uint8_t update_keys(uint32_t *pkeys, const z_crc_t *pcrc_32_tab, int32_t c);
+
+/* Initialize the encryption keys and the random header according to the given password. */
+void init_keys(const char *passwd, uint32_t *pkeys, const z_crc_t *pcrc_32_tab);
+
+/* Generate cryptographically secure random numbers */
+int cryptrand(unsigned char *buf, unsigned int len);
+
+/* Create encryption header */
+int crypthead(const char *passwd, uint8_t *buf, int buf_size, uint32_t *pkeys,
+ const z_crc_t *pcrc_32_tab, uint8_t verify1, uint8_t verify2);
+
+/***************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif