diff options
Diffstat (limited to 'toxencryptsave/crypto_pwhash_scryptsalsa208sha256/sysendian.h')
-rw-r--r-- | toxencryptsave/crypto_pwhash_scryptsalsa208sha256/sysendian.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/toxencryptsave/crypto_pwhash_scryptsalsa208sha256/sysendian.h b/toxencryptsave/crypto_pwhash_scryptsalsa208sha256/sysendian.h new file mode 100644 index 00000000..04e5c1ed --- /dev/null +++ b/toxencryptsave/crypto_pwhash_scryptsalsa208sha256/sysendian.h | |||
@@ -0,0 +1,153 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | #include "config.h" | ||
3 | #endif | ||
4 | #ifdef VANILLA_NACL /* toxcore only uses this when libsodium is unavailable */ | ||
5 | |||
6 | #ifndef _SYSENDIAN_H_ | ||
7 | #define _SYSENDIAN_H_ | ||
8 | |||
9 | #include <stdint.h> | ||
10 | |||
11 | /* Avoid namespace collisions with BSD <sys/endian.h>. */ | ||
12 | #define be16dec scrypt_be16dec | ||
13 | #define be16enc scrypt_be16enc | ||
14 | #define be32dec scrypt_be32dec | ||
15 | #define be32enc scrypt_be32enc | ||
16 | #define be64dec scrypt_be64dec | ||
17 | #define be64enc scrypt_be64enc | ||
18 | #define le16dec scrypt_le16dec | ||
19 | #define le16enc scrypt_le16enc | ||
20 | #define le32dec scrypt_le32dec | ||
21 | #define le32enc scrypt_le32enc | ||
22 | #define le64dec scrypt_le64dec | ||
23 | #define le64enc scrypt_le64enc | ||
24 | |||
25 | static inline uint16_t | ||
26 | be16dec(const void *pp) | ||
27 | { | ||
28 | const uint8_t *p = (uint8_t const *)pp; | ||
29 | |||
30 | return ((uint16_t)(p[1]) + ((uint16_t)(p[0]) << 8)); | ||
31 | } | ||
32 | |||
33 | static inline void | ||
34 | be16enc(void *pp, uint16_t x) | ||
35 | { | ||
36 | uint8_t * p = (uint8_t *)pp; | ||
37 | |||
38 | p[1] = x & 0xff; | ||
39 | p[0] = (x >> 8) & 0xff; | ||
40 | } | ||
41 | |||
42 | static inline uint32_t | ||
43 | be32dec(const void *pp) | ||
44 | { | ||
45 | const uint8_t *p = (uint8_t const *)pp; | ||
46 | |||
47 | return ((uint32_t)(p[3]) + ((uint32_t)(p[2]) << 8) + | ||
48 | ((uint32_t)(p[1]) << 16) + ((uint32_t)(p[0]) << 24)); | ||
49 | } | ||
50 | |||
51 | static inline void | ||
52 | be32enc(void *pp, uint32_t x) | ||
53 | { | ||
54 | uint8_t * p = (uint8_t *)pp; | ||
55 | |||
56 | p[3] = x & 0xff; | ||
57 | p[2] = (x >> 8) & 0xff; | ||
58 | p[1] = (x >> 16) & 0xff; | ||
59 | p[0] = (x >> 24) & 0xff; | ||
60 | } | ||
61 | |||
62 | static inline uint64_t | ||
63 | be64dec(const void *pp) | ||
64 | { | ||
65 | const uint8_t *p = (uint8_t const *)pp; | ||
66 | |||
67 | return ((uint64_t)(p[7]) + ((uint64_t)(p[6]) << 8) + | ||
68 | ((uint64_t)(p[5]) << 16) + ((uint64_t)(p[4]) << 24) + | ||
69 | ((uint64_t)(p[3]) << 32) + ((uint64_t)(p[2]) << 40) + | ||
70 | ((uint64_t)(p[1]) << 48) + ((uint64_t)(p[0]) << 56)); | ||
71 | } | ||
72 | |||
73 | static inline void | ||
74 | be64enc(void *pp, uint64_t x) | ||
75 | { | ||
76 | uint8_t * p = (uint8_t *)pp; | ||
77 | |||
78 | p[7] = x & 0xff; | ||
79 | p[6] = (x >> 8) & 0xff; | ||
80 | p[5] = (x >> 16) & 0xff; | ||
81 | p[4] = (x >> 24) & 0xff; | ||
82 | p[3] = (x >> 32) & 0xff; | ||
83 | p[2] = (x >> 40) & 0xff; | ||
84 | p[1] = (x >> 48) & 0xff; | ||
85 | p[0] = (x >> 56) & 0xff; | ||
86 | } | ||
87 | |||
88 | static inline uint16_t | ||
89 | le16dec(const void *pp) | ||
90 | { | ||
91 | const uint8_t *p = (uint8_t const *)pp; | ||
92 | |||
93 | return ((uint16_t)(p[0]) + ((uint16_t)(p[1]) << 8)); | ||
94 | } | ||
95 | |||
96 | static inline void | ||
97 | le16enc(void *pp, uint16_t x) | ||
98 | { | ||
99 | uint8_t * p = (uint8_t *)pp; | ||
100 | |||
101 | p[0] = x & 0xff; | ||
102 | p[1] = (x >> 8) & 0xff; | ||
103 | } | ||
104 | |||
105 | static inline uint32_t | ||
106 | le32dec(const void *pp) | ||
107 | { | ||
108 | const uint8_t *p = (uint8_t const *)pp; | ||
109 | |||
110 | return ((uint32_t)(p[0]) + ((uint32_t)(p[1]) << 8) + | ||
111 | ((uint32_t)(p[2]) << 16) + ((uint32_t)(p[3]) << 24)); | ||
112 | } | ||
113 | |||
114 | static inline void | ||
115 | le32enc(void *pp, uint32_t x) | ||
116 | { | ||
117 | uint8_t * p = (uint8_t *)pp; | ||
118 | |||
119 | p[0] = x & 0xff; | ||
120 | p[1] = (x >> 8) & 0xff; | ||
121 | p[2] = (x >> 16) & 0xff; | ||
122 | p[3] = (x >> 24) & 0xff; | ||
123 | } | ||
124 | |||
125 | static inline uint64_t | ||
126 | le64dec(const void *pp) | ||
127 | { | ||
128 | const uint8_t *p = (uint8_t const *)pp; | ||
129 | |||
130 | return ((uint64_t)(p[0]) + ((uint64_t)(p[1]) << 8) + | ||
131 | ((uint64_t)(p[2]) << 16) + ((uint64_t)(p[3]) << 24) + | ||
132 | ((uint64_t)(p[4]) << 32) + ((uint64_t)(p[5]) << 40) + | ||
133 | ((uint64_t)(p[6]) << 48) + ((uint64_t)(p[7]) << 56)); | ||
134 | } | ||
135 | |||
136 | static inline void | ||
137 | le64enc(void *pp, uint64_t x) | ||
138 | { | ||
139 | uint8_t * p = (uint8_t *)pp; | ||
140 | |||
141 | p[0] = x & 0xff; | ||
142 | p[1] = (x >> 8) & 0xff; | ||
143 | p[2] = (x >> 16) & 0xff; | ||
144 | p[3] = (x >> 24) & 0xff; | ||
145 | p[4] = (x >> 32) & 0xff; | ||
146 | p[5] = (x >> 40) & 0xff; | ||
147 | p[6] = (x >> 48) & 0xff; | ||
148 | p[7] = (x >> 56) & 0xff; | ||
149 | } | ||
150 | |||
151 | #endif /* !_SYSENDIAN_H_ */ | ||
152 | |||
153 | #endif | ||