123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /* 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
|