]> CyberLeo.Net >> Repos - SourceForge/eyefi-config.git/blob - eyefi-config.h
add new files
[SourceForge/eyefi-config.git] / eyefi-config.h
1 #ifndef _EYEFI_CONFIG_H
2 #define _EYEFI_CONFIG_H
3
4 #include <sys/types.h>
5
6 #include <endian.h>
7 #include <byteswap.h>
8
9 /*
10  * Do some kernel-style types to make
11  * definitions shorter.
12  */
13 typedef unsigned long u32;
14 typedef unsigned char u8;
15
16 #define os_memset memset
17 #define os_memcpy memcpy
18 #define os_strlen strlen
19 #define os_strcpy strcpy
20
21 #define SHA1_MAC_LEN 20
22 #define MD5_MAC_LEN 16
23 void sha1_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac);
24 void md5_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac);
25 void hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem,
26                      const u8 *addr[], const size_t *len, u8 *mac);
27 void hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
28               u8 *mac);
29 void pbkdf2_sha1(const char *passphrase, const char *ssid, size_t ssid_len,
30                  int iterations, u8 *buf, size_t buflen);
31
32 static inline u32 swap_bytes(u32 src)
33 {
34         u32 dest = 0;
35         dest |= (src & 0xff000000) >> 24;
36         dest |= (src & 0x00ff0000) >>  8;
37         dest |= (src & 0x0000ff00) <<  8;
38         dest |= (src & 0x000000ff) << 24;
39         return dest;
40 }
41
42 #ifdef __LITTLE_ENDIAN
43 #warning le
44 #define le_to_host32(n) (n)
45 #define be_to_host32(n) swap_bytes(n)
46 #define host_to_be32(n) swap_bytes(n)
47 #else  // __BIG_ENDIAN
48 #warning be
49 #define le_to_host32(n) swap_bytes(n)
50 #define be_to_host32(n) (n)
51 #define host_to_be32(n) (n)
52 #endif
53
54 #endif // _EYEFI_CONFIG_H