/* * MPQCryptography.h * MPQKit * * Created by Jean-Francois Roy on Sat Oct 05 2002. * Copyright (c) 2002-2007 MacStorm. All rights reserved. * */ #include #include #include #if defined(__cplusplus) extern "C" { #endif #if !defined(__MPQLIB_WEAK_SIGNATURE_SIZE) #define __MPQLIB_WEAK_SIGNATURE_SIZE 64 #endif #if !defined(__MPQLIB_STRONG_SIGNATURE_SIZE) #define __MPQLIB_STRONG_SIGNATURE_SIZE 256 #endif void __mpqlib_init_cryptography(void); const uint32_t *__mpqlib_get_cryptography_table(void); void __mpqlib_encrypt(char *data, uint32_t length, uint32_t key, bool disable_input_swapping); void __mpqlib_decrypt(char *data, uint32_t length, uint32_t key, bool disable_output_swapping); uint32_t __mpqlib_hash_cstring(const char *string, uint32_t type); uint32_t __mpqlib_hash_data(const char *data, uint32_t length, uint32_t type); #define __MPQLIB_CRC_INIT 0x1 #define __MPQLIB_CRC_UPDATE 0x2 #define __MPQLIB_CRC_FINALIZE 0x4 void __mpqlib_crc32(const unsigned char *buffer, uint32_t length, uint32_t * crc, uint32_t flags); int __mpqlib_verify_weak_signature(RSA * public_key, const unsigned char *signature, const unsigned char *digest); int __mpqlib_verify_strong_signature(RSA * public_key, const unsigned char *signature, const unsigned char *digest); #if defined(__cplusplus) } #endif