]>
Commit | Line | Data |
---|---|---|
18f8bd28 CP |
1 | /* |
2 | nterface library functions | |
3 | Copyright (C) 2003-2004 Chris Porter. | |
4 | */ | |
5 | ||
6 | #ifndef __nterface_library_H | |
7 | #define __nterface_library_H | |
8 | ||
9 | #include "../core/error.h" | |
10 | ||
1ac1d43c CP |
11 | #include "../lib/sha2.h" |
12 | ||
18f8bd28 CP |
13 | #define RE_OK 0x00 |
14 | #define RE_MEM_ERROR 0x01 | |
15 | #define RE_BAD_LINE 0x02 | |
16 | #define RE_REQUEST_REJECTED 0x03 | |
17 | #define RE_SERVICE_NOT_FOUND 0x04 | |
18 | #define RE_CONNECTION_CLOSED 0x05 | |
19 | #define RE_TRANSPORT_NOT_FOUND 0x06 | |
20 | #define RE_COMMAND_NOT_FOUND 0x07 | |
21 | #define RE_WRONG_ARG_COUNT 0x08 | |
22 | #define RE_TOO_MANY_ARGS 0x09 | |
23 | #define RE_SERVICER_NOT_FOUND 0x0A | |
5757e1ef | 24 | #define RE_SOCKET_ERROR 0x0B |
18f8bd28 CP |
25 | |
26 | #define snc(err, f) strncpy(err, f, sizeof(err) - 1) | |
27 | #define TwentyByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15], buf[16], buf[17], buf[18], buf[19]); | |
1ac1d43c CP |
28 | #define SixteenByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]); |
29 | #define ThirtyTwoByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15], buf[16], buf[17], buf[18], buf[19], buf[20], buf[21], buf[22], buf[23], buf[24], buf[25], buf[26], buf[27], buf[28], buf[29], buf[30], buf[31]); | |
18f8bd28 CP |
30 | |
31 | #define MemError() Error("nterface", ERR_FATAL, "Memory allocation error, file: %s line: %d", __FILE__, __LINE__); | |
32 | ||
1ac1d43c | 33 | #define RANDOM_LOCATION "/dev/urandom" |
18f8bd28 CP |
34 | |
35 | #define MemCheck(x) \ | |
36 | if(!x) { \ | |
37 | MemError(); \ | |
38 | return; \ | |
39 | } | |
40 | ||
41 | #define MemCheckR(x, y) \ | |
42 | if(!x) { \ | |
43 | MemError(); \ | |
44 | return y; \ | |
45 | } | |
46 | ||
47 | int getcopyconfigitemint(char *section, char *key, int def, int *value); | |
48 | int getcopyconfigitemintpositive(char *section, char *key, int def); | |
49 | int protected_atoi(char *buf, int *value); | |
50 | int positive_atoi(char *data); | |
51 | char *challenge_response(char *challenge, char *password); | |
18f8bd28 | 52 | char *request_error(int errn); |
1ac1d43c | 53 | int get_entropy(unsigned char *data, int bytes); |
18f8bd28 CP |
54 | int generate_nonce(unsigned char *nonce, int nterfacer); |
55 | char *int_to_hex(unsigned char *input, char *buf, int len); | |
56 | int hex_to_int(char *input, unsigned char *buf, int buflen); | |
57 | ||
1ac1d43c CP |
58 | typedef struct { |
59 | unsigned char prevblock[16]; | |
60 | unsigned char scratch[16]; | |
61 | int nrounds; | |
62 | unsigned long *rk; | |
63 | } rijndaelcbc; | |
64 | ||
1ac1d43c CP |
65 | unsigned char *rijndaelcbc_decrypt(rijndaelcbc *c, unsigned char *ctblock); |
66 | unsigned char *rijndaelcbc_encrypt(rijndaelcbc *c, unsigned char *ptblock); | |
67 | void rijndaelcbc_free(rijndaelcbc *c); | |
68 | rijndaelcbc *rijndaelcbc_init(unsigned char *key, int keybits, unsigned char *iv, int decrypt); | |
69 | ||
18f8bd28 | 70 | #endif |