1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
* MPQCryptography.h
* MPQKit
*
* Created by Jean-Francois Roy on Sat Oct 05 2002.
* Copyright (c) 2002-2007 MacStorm. All rights reserved.
*
*/
#include <stdbool.h>
#include <stdint.h>
#include <openssl/rsa.h>
#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(void *data, uint32_t length, uint32_t key,
bool disable_input_swapping);
void __mpqlib_decrypt(void *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
|