Changeset 988 for vendor/current/lib/crypto
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- Location:
- vendor/current/lib/crypto
- Files:
-
- 14 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/lib/crypto/aes.c
r740 r988 33 33 34 34 #include "replace.h" 35 #include "aes.h" 35 36 37 #ifdef SAMBA_RIJNDAEL 36 38 #include "rijndael-alg-fst.h" 37 #include "aes.h"38 39 39 40 int … … 66 67 rijndaelDecrypt(key->key, key->rounds, in, out); 67 68 } 69 #endif /* SAMBA_RIJNDAEL */ 68 70 71 #ifdef SAMBA_AES_CBC_ENCRYPT 69 72 void 70 73 AES_cbc_encrypt(const unsigned char *in, unsigned char *out, … … 113 116 } 114 117 } 118 #endif /* SAMBA_AES_CBC_ENCRYPT */ 115 119 116 void aes_cfb8_encrypt(const uint8_t *in, uint8_t *out, 117 size_t length, const AES_KEY *key, 118 uint8_t *iv, int forward) 120 #ifdef SAMBA_AES_CFB8_ENCRYPT 121 void 122 AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, 123 unsigned long size, const AES_KEY *key, 124 unsigned char *iv, int forward_encrypt) 119 125 { 120 size_t i;126 int i; 121 127 122 for (i=0; i < length; i++) {123 uint8_t tiv[AES_BLOCK_SIZE*2];128 for (i = 0; i < size; i++) { 129 unsigned char tmp[AES_BLOCK_SIZE + 1]; 124 130 125 memcpy(tiv, iv, AES_BLOCK_SIZE);126 127 if (!forward) {128 tiv[AES_BLOCK_SIZE] = in[i];129 130 131 if (forward) {132 tiv[AES_BLOCK_SIZE] = out[i];133 134 memcpy(iv, tiv+1, AES_BLOCK_SIZE);135 131 memcpy(tmp, iv, AES_BLOCK_SIZE); 132 AES_encrypt(iv, iv, key); 133 if (!forward_encrypt) { 134 tmp[AES_BLOCK_SIZE] = in[i]; 135 } 136 out[i] = in[i] ^ iv[0]; 137 if (forward_encrypt) { 138 tmp[AES_BLOCK_SIZE] = out[i]; 139 } 140 memcpy(iv, &tmp[1], AES_BLOCK_SIZE); 141 } 136 142 } 143 #endif /* SAMBA_AES_CFB8_ENCRYPT */ -
vendor/current/lib/crypto/aes.h
r740 r988 37 37 #define LIB_CRYPTO_AES_H 1 38 38 39 #define SAMBA_RIJNDAEL 1 40 #define SAMBA_AES_CBC_ENCRYPT 1 41 #define SAMBA_AES_CFB8_ENCRYPT 1 42 #define SAMBA_AES_BLOCK_XOR 1 43 39 44 /* symbol renaming */ 40 45 #define AES_set_encrypt_key samba_AES_set_encrypt_key … … 43 48 #define AES_decrypt samba_AES_decrypt 44 49 #define AES_cbc_encrypt samba_AES_cbc_encrypt 50 #define AES_cfb8_encrypt samba_AES_cfb8_encrypt 45 51 46 52 /* … … 73 79 unsigned char *, int); 74 80 75 void aes_cfb8_encrypt(const uint8_t *in, uint8_t *out, 76 size_t length, const AES_KEY *key, 77 uint8_t *iv, int forward); 81 void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, 82 unsigned long size, const AES_KEY *key, 83 unsigned char *iv, int forward_encrypt); 84 85 #define aes_cfb8_encrypt(in, out, size, key, iv, forward_encrypt) \ 86 AES_cfb8_encrypt(in, out, size, key, iv, forward_encrypt) 78 87 79 88 #ifdef __cplusplus … … 81 90 #endif 82 91 92 #ifdef SAMBA_AES_BLOCK_XOR 93 static inline void aes_block_xor(const uint8_t in1[AES_BLOCK_SIZE], 94 const uint8_t in2[AES_BLOCK_SIZE], 95 uint8_t out[AES_BLOCK_SIZE]) 96 { 97 #define __IS_ALIGN8(p) ((((uintptr_t)(p)) & 0x7) == 0) 98 #define __IS_ALIGNED(a,b,c) __IS_ALIGN8(\ 99 ((uintptr_t)(a)) | \ 100 ((uintptr_t)(b)) | \ 101 ((uintptr_t)(c))) 102 /* If everything is aligned we can optimize */ 103 if (likely(__IS_ALIGNED(in1, in2, out))) { 104 #define __RO64(p) ((const uint64_t *)(p)) 105 #define __RW64(p) ((uint64_t *)(p)) 106 __RW64(out)[0] = __RO64(in1)[0] ^ __RO64(in2)[0]; 107 __RW64(out)[1] = __RO64(in1)[1] ^ __RO64(in2)[1]; 108 } else { 109 uint64_t i1[2]; 110 uint64_t i2[2]; 111 uint64_t o[2]; 112 113 memcpy(i1, in1, AES_BLOCK_SIZE); 114 memcpy(i2, in2, AES_BLOCK_SIZE); 115 o[0] = i1[0] ^ i2[0]; 116 o[1] = i1[1] ^ i2[1]; 117 memcpy(out, o, AES_BLOCK_SIZE); 118 } 119 } 120 #endif /* SAMBA_AES_BLOCK_XOR */ 121 122 static inline void aes_block_lshift(const uint8_t in[AES_BLOCK_SIZE], 123 uint8_t out[AES_BLOCK_SIZE]) 124 { 125 static const struct aes_block_lshift_entry { 126 uint8_t lshift; 127 uint8_t overflow; 128 } aes_block_lshift_table[UINT8_MAX+1] = { 129 [0x00] = { .lshift = 0x00, .overflow = 0x00 }, 130 [0x01] = { .lshift = 0x02, .overflow = 0x00 }, 131 [0x02] = { .lshift = 0x04, .overflow = 0x00 }, 132 [0x03] = { .lshift = 0x06, .overflow = 0x00 }, 133 [0x04] = { .lshift = 0x08, .overflow = 0x00 }, 134 [0x05] = { .lshift = 0x0a, .overflow = 0x00 }, 135 [0x06] = { .lshift = 0x0c, .overflow = 0x00 }, 136 [0x07] = { .lshift = 0x0e, .overflow = 0x00 }, 137 [0x08] = { .lshift = 0x10, .overflow = 0x00 }, 138 [0x09] = { .lshift = 0x12, .overflow = 0x00 }, 139 [0x0a] = { .lshift = 0x14, .overflow = 0x00 }, 140 [0x0b] = { .lshift = 0x16, .overflow = 0x00 }, 141 [0x0c] = { .lshift = 0x18, .overflow = 0x00 }, 142 [0x0d] = { .lshift = 0x1a, .overflow = 0x00 }, 143 [0x0e] = { .lshift = 0x1c, .overflow = 0x00 }, 144 [0x0f] = { .lshift = 0x1e, .overflow = 0x00 }, 145 [0x10] = { .lshift = 0x20, .overflow = 0x00 }, 146 [0x11] = { .lshift = 0x22, .overflow = 0x00 }, 147 [0x12] = { .lshift = 0x24, .overflow = 0x00 }, 148 [0x13] = { .lshift = 0x26, .overflow = 0x00 }, 149 [0x14] = { .lshift = 0x28, .overflow = 0x00 }, 150 [0x15] = { .lshift = 0x2a, .overflow = 0x00 }, 151 [0x16] = { .lshift = 0x2c, .overflow = 0x00 }, 152 [0x17] = { .lshift = 0x2e, .overflow = 0x00 }, 153 [0x18] = { .lshift = 0x30, .overflow = 0x00 }, 154 [0x19] = { .lshift = 0x32, .overflow = 0x00 }, 155 [0x1a] = { .lshift = 0x34, .overflow = 0x00 }, 156 [0x1b] = { .lshift = 0x36, .overflow = 0x00 }, 157 [0x1c] = { .lshift = 0x38, .overflow = 0x00 }, 158 [0x1d] = { .lshift = 0x3a, .overflow = 0x00 }, 159 [0x1e] = { .lshift = 0x3c, .overflow = 0x00 }, 160 [0x1f] = { .lshift = 0x3e, .overflow = 0x00 }, 161 [0x20] = { .lshift = 0x40, .overflow = 0x00 }, 162 [0x21] = { .lshift = 0x42, .overflow = 0x00 }, 163 [0x22] = { .lshift = 0x44, .overflow = 0x00 }, 164 [0x23] = { .lshift = 0x46, .overflow = 0x00 }, 165 [0x24] = { .lshift = 0x48, .overflow = 0x00 }, 166 [0x25] = { .lshift = 0x4a, .overflow = 0x00 }, 167 [0x26] = { .lshift = 0x4c, .overflow = 0x00 }, 168 [0x27] = { .lshift = 0x4e, .overflow = 0x00 }, 169 [0x28] = { .lshift = 0x50, .overflow = 0x00 }, 170 [0x29] = { .lshift = 0x52, .overflow = 0x00 }, 171 [0x2a] = { .lshift = 0x54, .overflow = 0x00 }, 172 [0x2b] = { .lshift = 0x56, .overflow = 0x00 }, 173 [0x2c] = { .lshift = 0x58, .overflow = 0x00 }, 174 [0x2d] = { .lshift = 0x5a, .overflow = 0x00 }, 175 [0x2e] = { .lshift = 0x5c, .overflow = 0x00 }, 176 [0x2f] = { .lshift = 0x5e, .overflow = 0x00 }, 177 [0x30] = { .lshift = 0x60, .overflow = 0x00 }, 178 [0x31] = { .lshift = 0x62, .overflow = 0x00 }, 179 [0x32] = { .lshift = 0x64, .overflow = 0x00 }, 180 [0x33] = { .lshift = 0x66, .overflow = 0x00 }, 181 [0x34] = { .lshift = 0x68, .overflow = 0x00 }, 182 [0x35] = { .lshift = 0x6a, .overflow = 0x00 }, 183 [0x36] = { .lshift = 0x6c, .overflow = 0x00 }, 184 [0x37] = { .lshift = 0x6e, .overflow = 0x00 }, 185 [0x38] = { .lshift = 0x70, .overflow = 0x00 }, 186 [0x39] = { .lshift = 0x72, .overflow = 0x00 }, 187 [0x3a] = { .lshift = 0x74, .overflow = 0x00 }, 188 [0x3b] = { .lshift = 0x76, .overflow = 0x00 }, 189 [0x3c] = { .lshift = 0x78, .overflow = 0x00 }, 190 [0x3d] = { .lshift = 0x7a, .overflow = 0x00 }, 191 [0x3e] = { .lshift = 0x7c, .overflow = 0x00 }, 192 [0x3f] = { .lshift = 0x7e, .overflow = 0x00 }, 193 [0x40] = { .lshift = 0x80, .overflow = 0x00 }, 194 [0x41] = { .lshift = 0x82, .overflow = 0x00 }, 195 [0x42] = { .lshift = 0x84, .overflow = 0x00 }, 196 [0x43] = { .lshift = 0x86, .overflow = 0x00 }, 197 [0x44] = { .lshift = 0x88, .overflow = 0x00 }, 198 [0x45] = { .lshift = 0x8a, .overflow = 0x00 }, 199 [0x46] = { .lshift = 0x8c, .overflow = 0x00 }, 200 [0x47] = { .lshift = 0x8e, .overflow = 0x00 }, 201 [0x48] = { .lshift = 0x90, .overflow = 0x00 }, 202 [0x49] = { .lshift = 0x92, .overflow = 0x00 }, 203 [0x4a] = { .lshift = 0x94, .overflow = 0x00 }, 204 [0x4b] = { .lshift = 0x96, .overflow = 0x00 }, 205 [0x4c] = { .lshift = 0x98, .overflow = 0x00 }, 206 [0x4d] = { .lshift = 0x9a, .overflow = 0x00 }, 207 [0x4e] = { .lshift = 0x9c, .overflow = 0x00 }, 208 [0x4f] = { .lshift = 0x9e, .overflow = 0x00 }, 209 [0x50] = { .lshift = 0xa0, .overflow = 0x00 }, 210 [0x51] = { .lshift = 0xa2, .overflow = 0x00 }, 211 [0x52] = { .lshift = 0xa4, .overflow = 0x00 }, 212 [0x53] = { .lshift = 0xa6, .overflow = 0x00 }, 213 [0x54] = { .lshift = 0xa8, .overflow = 0x00 }, 214 [0x55] = { .lshift = 0xaa, .overflow = 0x00 }, 215 [0x56] = { .lshift = 0xac, .overflow = 0x00 }, 216 [0x57] = { .lshift = 0xae, .overflow = 0x00 }, 217 [0x58] = { .lshift = 0xb0, .overflow = 0x00 }, 218 [0x59] = { .lshift = 0xb2, .overflow = 0x00 }, 219 [0x5a] = { .lshift = 0xb4, .overflow = 0x00 }, 220 [0x5b] = { .lshift = 0xb6, .overflow = 0x00 }, 221 [0x5c] = { .lshift = 0xb8, .overflow = 0x00 }, 222 [0x5d] = { .lshift = 0xba, .overflow = 0x00 }, 223 [0x5e] = { .lshift = 0xbc, .overflow = 0x00 }, 224 [0x5f] = { .lshift = 0xbe, .overflow = 0x00 }, 225 [0x60] = { .lshift = 0xc0, .overflow = 0x00 }, 226 [0x61] = { .lshift = 0xc2, .overflow = 0x00 }, 227 [0x62] = { .lshift = 0xc4, .overflow = 0x00 }, 228 [0x63] = { .lshift = 0xc6, .overflow = 0x00 }, 229 [0x64] = { .lshift = 0xc8, .overflow = 0x00 }, 230 [0x65] = { .lshift = 0xca, .overflow = 0x00 }, 231 [0x66] = { .lshift = 0xcc, .overflow = 0x00 }, 232 [0x67] = { .lshift = 0xce, .overflow = 0x00 }, 233 [0x68] = { .lshift = 0xd0, .overflow = 0x00 }, 234 [0x69] = { .lshift = 0xd2, .overflow = 0x00 }, 235 [0x6a] = { .lshift = 0xd4, .overflow = 0x00 }, 236 [0x6b] = { .lshift = 0xd6, .overflow = 0x00 }, 237 [0x6c] = { .lshift = 0xd8, .overflow = 0x00 }, 238 [0x6d] = { .lshift = 0xda, .overflow = 0x00 }, 239 [0x6e] = { .lshift = 0xdc, .overflow = 0x00 }, 240 [0x6f] = { .lshift = 0xde, .overflow = 0x00 }, 241 [0x70] = { .lshift = 0xe0, .overflow = 0x00 }, 242 [0x71] = { .lshift = 0xe2, .overflow = 0x00 }, 243 [0x72] = { .lshift = 0xe4, .overflow = 0x00 }, 244 [0x73] = { .lshift = 0xe6, .overflow = 0x00 }, 245 [0x74] = { .lshift = 0xe8, .overflow = 0x00 }, 246 [0x75] = { .lshift = 0xea, .overflow = 0x00 }, 247 [0x76] = { .lshift = 0xec, .overflow = 0x00 }, 248 [0x77] = { .lshift = 0xee, .overflow = 0x00 }, 249 [0x78] = { .lshift = 0xf0, .overflow = 0x00 }, 250 [0x79] = { .lshift = 0xf2, .overflow = 0x00 }, 251 [0x7a] = { .lshift = 0xf4, .overflow = 0x00 }, 252 [0x7b] = { .lshift = 0xf6, .overflow = 0x00 }, 253 [0x7c] = { .lshift = 0xf8, .overflow = 0x00 }, 254 [0x7d] = { .lshift = 0xfa, .overflow = 0x00 }, 255 [0x7e] = { .lshift = 0xfc, .overflow = 0x00 }, 256 [0x7f] = { .lshift = 0xfe, .overflow = 0x00 }, 257 [0x80] = { .lshift = 0x00, .overflow = 0x01 }, 258 [0x81] = { .lshift = 0x02, .overflow = 0x01 }, 259 [0x82] = { .lshift = 0x04, .overflow = 0x01 }, 260 [0x83] = { .lshift = 0x06, .overflow = 0x01 }, 261 [0x84] = { .lshift = 0x08, .overflow = 0x01 }, 262 [0x85] = { .lshift = 0x0a, .overflow = 0x01 }, 263 [0x86] = { .lshift = 0x0c, .overflow = 0x01 }, 264 [0x87] = { .lshift = 0x0e, .overflow = 0x01 }, 265 [0x88] = { .lshift = 0x10, .overflow = 0x01 }, 266 [0x89] = { .lshift = 0x12, .overflow = 0x01 }, 267 [0x8a] = { .lshift = 0x14, .overflow = 0x01 }, 268 [0x8b] = { .lshift = 0x16, .overflow = 0x01 }, 269 [0x8c] = { .lshift = 0x18, .overflow = 0x01 }, 270 [0x8d] = { .lshift = 0x1a, .overflow = 0x01 }, 271 [0x8e] = { .lshift = 0x1c, .overflow = 0x01 }, 272 [0x8f] = { .lshift = 0x1e, .overflow = 0x01 }, 273 [0x90] = { .lshift = 0x20, .overflow = 0x01 }, 274 [0x91] = { .lshift = 0x22, .overflow = 0x01 }, 275 [0x92] = { .lshift = 0x24, .overflow = 0x01 }, 276 [0x93] = { .lshift = 0x26, .overflow = 0x01 }, 277 [0x94] = { .lshift = 0x28, .overflow = 0x01 }, 278 [0x95] = { .lshift = 0x2a, .overflow = 0x01 }, 279 [0x96] = { .lshift = 0x2c, .overflow = 0x01 }, 280 [0x97] = { .lshift = 0x2e, .overflow = 0x01 }, 281 [0x98] = { .lshift = 0x30, .overflow = 0x01 }, 282 [0x99] = { .lshift = 0x32, .overflow = 0x01 }, 283 [0x9a] = { .lshift = 0x34, .overflow = 0x01 }, 284 [0x9b] = { .lshift = 0x36, .overflow = 0x01 }, 285 [0x9c] = { .lshift = 0x38, .overflow = 0x01 }, 286 [0x9d] = { .lshift = 0x3a, .overflow = 0x01 }, 287 [0x9e] = { .lshift = 0x3c, .overflow = 0x01 }, 288 [0x9f] = { .lshift = 0x3e, .overflow = 0x01 }, 289 [0xa0] = { .lshift = 0x40, .overflow = 0x01 }, 290 [0xa1] = { .lshift = 0x42, .overflow = 0x01 }, 291 [0xa2] = { .lshift = 0x44, .overflow = 0x01 }, 292 [0xa3] = { .lshift = 0x46, .overflow = 0x01 }, 293 [0xa4] = { .lshift = 0x48, .overflow = 0x01 }, 294 [0xa5] = { .lshift = 0x4a, .overflow = 0x01 }, 295 [0xa6] = { .lshift = 0x4c, .overflow = 0x01 }, 296 [0xa7] = { .lshift = 0x4e, .overflow = 0x01 }, 297 [0xa8] = { .lshift = 0x50, .overflow = 0x01 }, 298 [0xa9] = { .lshift = 0x52, .overflow = 0x01 }, 299 [0xaa] = { .lshift = 0x54, .overflow = 0x01 }, 300 [0xab] = { .lshift = 0x56, .overflow = 0x01 }, 301 [0xac] = { .lshift = 0x58, .overflow = 0x01 }, 302 [0xad] = { .lshift = 0x5a, .overflow = 0x01 }, 303 [0xae] = { .lshift = 0x5c, .overflow = 0x01 }, 304 [0xaf] = { .lshift = 0x5e, .overflow = 0x01 }, 305 [0xb0] = { .lshift = 0x60, .overflow = 0x01 }, 306 [0xb1] = { .lshift = 0x62, .overflow = 0x01 }, 307 [0xb2] = { .lshift = 0x64, .overflow = 0x01 }, 308 [0xb3] = { .lshift = 0x66, .overflow = 0x01 }, 309 [0xb4] = { .lshift = 0x68, .overflow = 0x01 }, 310 [0xb5] = { .lshift = 0x6a, .overflow = 0x01 }, 311 [0xb6] = { .lshift = 0x6c, .overflow = 0x01 }, 312 [0xb7] = { .lshift = 0x6e, .overflow = 0x01 }, 313 [0xb8] = { .lshift = 0x70, .overflow = 0x01 }, 314 [0xb9] = { .lshift = 0x72, .overflow = 0x01 }, 315 [0xba] = { .lshift = 0x74, .overflow = 0x01 }, 316 [0xbb] = { .lshift = 0x76, .overflow = 0x01 }, 317 [0xbc] = { .lshift = 0x78, .overflow = 0x01 }, 318 [0xbd] = { .lshift = 0x7a, .overflow = 0x01 }, 319 [0xbe] = { .lshift = 0x7c, .overflow = 0x01 }, 320 [0xbf] = { .lshift = 0x7e, .overflow = 0x01 }, 321 [0xc0] = { .lshift = 0x80, .overflow = 0x01 }, 322 [0xc1] = { .lshift = 0x82, .overflow = 0x01 }, 323 [0xc2] = { .lshift = 0x84, .overflow = 0x01 }, 324 [0xc3] = { .lshift = 0x86, .overflow = 0x01 }, 325 [0xc4] = { .lshift = 0x88, .overflow = 0x01 }, 326 [0xc5] = { .lshift = 0x8a, .overflow = 0x01 }, 327 [0xc6] = { .lshift = 0x8c, .overflow = 0x01 }, 328 [0xc7] = { .lshift = 0x8e, .overflow = 0x01 }, 329 [0xc8] = { .lshift = 0x90, .overflow = 0x01 }, 330 [0xc9] = { .lshift = 0x92, .overflow = 0x01 }, 331 [0xca] = { .lshift = 0x94, .overflow = 0x01 }, 332 [0xcb] = { .lshift = 0x96, .overflow = 0x01 }, 333 [0xcc] = { .lshift = 0x98, .overflow = 0x01 }, 334 [0xcd] = { .lshift = 0x9a, .overflow = 0x01 }, 335 [0xce] = { .lshift = 0x9c, .overflow = 0x01 }, 336 [0xcf] = { .lshift = 0x9e, .overflow = 0x01 }, 337 [0xd0] = { .lshift = 0xa0, .overflow = 0x01 }, 338 [0xd1] = { .lshift = 0xa2, .overflow = 0x01 }, 339 [0xd2] = { .lshift = 0xa4, .overflow = 0x01 }, 340 [0xd3] = { .lshift = 0xa6, .overflow = 0x01 }, 341 [0xd4] = { .lshift = 0xa8, .overflow = 0x01 }, 342 [0xd5] = { .lshift = 0xaa, .overflow = 0x01 }, 343 [0xd6] = { .lshift = 0xac, .overflow = 0x01 }, 344 [0xd7] = { .lshift = 0xae, .overflow = 0x01 }, 345 [0xd8] = { .lshift = 0xb0, .overflow = 0x01 }, 346 [0xd9] = { .lshift = 0xb2, .overflow = 0x01 }, 347 [0xda] = { .lshift = 0xb4, .overflow = 0x01 }, 348 [0xdb] = { .lshift = 0xb6, .overflow = 0x01 }, 349 [0xdc] = { .lshift = 0xb8, .overflow = 0x01 }, 350 [0xdd] = { .lshift = 0xba, .overflow = 0x01 }, 351 [0xde] = { .lshift = 0xbc, .overflow = 0x01 }, 352 [0xdf] = { .lshift = 0xbe, .overflow = 0x01 }, 353 [0xe0] = { .lshift = 0xc0, .overflow = 0x01 }, 354 [0xe1] = { .lshift = 0xc2, .overflow = 0x01 }, 355 [0xe2] = { .lshift = 0xc4, .overflow = 0x01 }, 356 [0xe3] = { .lshift = 0xc6, .overflow = 0x01 }, 357 [0xe4] = { .lshift = 0xc8, .overflow = 0x01 }, 358 [0xe5] = { .lshift = 0xca, .overflow = 0x01 }, 359 [0xe6] = { .lshift = 0xcc, .overflow = 0x01 }, 360 [0xe7] = { .lshift = 0xce, .overflow = 0x01 }, 361 [0xe8] = { .lshift = 0xd0, .overflow = 0x01 }, 362 [0xe9] = { .lshift = 0xd2, .overflow = 0x01 }, 363 [0xea] = { .lshift = 0xd4, .overflow = 0x01 }, 364 [0xeb] = { .lshift = 0xd6, .overflow = 0x01 }, 365 [0xec] = { .lshift = 0xd8, .overflow = 0x01 }, 366 [0xed] = { .lshift = 0xda, .overflow = 0x01 }, 367 [0xee] = { .lshift = 0xdc, .overflow = 0x01 }, 368 [0xef] = { .lshift = 0xde, .overflow = 0x01 }, 369 [0xf0] = { .lshift = 0xe0, .overflow = 0x01 }, 370 [0xf1] = { .lshift = 0xe2, .overflow = 0x01 }, 371 [0xf2] = { .lshift = 0xe4, .overflow = 0x01 }, 372 [0xf3] = { .lshift = 0xe6, .overflow = 0x01 }, 373 [0xf4] = { .lshift = 0xe8, .overflow = 0x01 }, 374 [0xf5] = { .lshift = 0xea, .overflow = 0x01 }, 375 [0xf6] = { .lshift = 0xec, .overflow = 0x01 }, 376 [0xf7] = { .lshift = 0xee, .overflow = 0x01 }, 377 [0xf8] = { .lshift = 0xf0, .overflow = 0x01 }, 378 [0xf9] = { .lshift = 0xf2, .overflow = 0x01 }, 379 [0xfa] = { .lshift = 0xf4, .overflow = 0x01 }, 380 [0xfb] = { .lshift = 0xf6, .overflow = 0x01 }, 381 [0xfc] = { .lshift = 0xf8, .overflow = 0x01 }, 382 [0xfd] = { .lshift = 0xfa, .overflow = 0x01 }, 383 [0xfe] = { .lshift = 0xfc, .overflow = 0x01 }, 384 [0xff] = { .lshift = 0xfe, .overflow = 0x01 }, 385 }; 386 int8_t i; 387 uint8_t overflow = 0; 388 389 for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) { 390 const struct aes_block_lshift_entry *e = &aes_block_lshift_table[in[i]]; 391 out[i] = e->lshift | overflow; 392 overflow = e->overflow; 393 } 394 } 395 396 static inline void aes_block_rshift(const uint8_t in[AES_BLOCK_SIZE], 397 uint8_t out[AES_BLOCK_SIZE]) 398 { 399 static const struct aes_block_rshift_entry { 400 uint8_t rshift; 401 uint8_t overflow; 402 } aes_block_rshift_table[UINT8_MAX+1] = { 403 [0x00] = { .rshift = 0x00, .overflow = 0x00 }, 404 [0x01] = { .rshift = 0x00, .overflow = 0x80 }, 405 [0x02] = { .rshift = 0x01, .overflow = 0x00 }, 406 [0x03] = { .rshift = 0x01, .overflow = 0x80 }, 407 [0x04] = { .rshift = 0x02, .overflow = 0x00 }, 408 [0x05] = { .rshift = 0x02, .overflow = 0x80 }, 409 [0x06] = { .rshift = 0x03, .overflow = 0x00 }, 410 [0x07] = { .rshift = 0x03, .overflow = 0x80 }, 411 [0x08] = { .rshift = 0x04, .overflow = 0x00 }, 412 [0x09] = { .rshift = 0x04, .overflow = 0x80 }, 413 [0x0a] = { .rshift = 0x05, .overflow = 0x00 }, 414 [0x0b] = { .rshift = 0x05, .overflow = 0x80 }, 415 [0x0c] = { .rshift = 0x06, .overflow = 0x00 }, 416 [0x0d] = { .rshift = 0x06, .overflow = 0x80 }, 417 [0x0e] = { .rshift = 0x07, .overflow = 0x00 }, 418 [0x0f] = { .rshift = 0x07, .overflow = 0x80 }, 419 [0x10] = { .rshift = 0x08, .overflow = 0x00 }, 420 [0x11] = { .rshift = 0x08, .overflow = 0x80 }, 421 [0x12] = { .rshift = 0x09, .overflow = 0x00 }, 422 [0x13] = { .rshift = 0x09, .overflow = 0x80 }, 423 [0x14] = { .rshift = 0x0a, .overflow = 0x00 }, 424 [0x15] = { .rshift = 0x0a, .overflow = 0x80 }, 425 [0x16] = { .rshift = 0x0b, .overflow = 0x00 }, 426 [0x17] = { .rshift = 0x0b, .overflow = 0x80 }, 427 [0x18] = { .rshift = 0x0c, .overflow = 0x00 }, 428 [0x19] = { .rshift = 0x0c, .overflow = 0x80 }, 429 [0x1a] = { .rshift = 0x0d, .overflow = 0x00 }, 430 [0x1b] = { .rshift = 0x0d, .overflow = 0x80 }, 431 [0x1c] = { .rshift = 0x0e, .overflow = 0x00 }, 432 [0x1d] = { .rshift = 0x0e, .overflow = 0x80 }, 433 [0x1e] = { .rshift = 0x0f, .overflow = 0x00 }, 434 [0x1f] = { .rshift = 0x0f, .overflow = 0x80 }, 435 [0x20] = { .rshift = 0x10, .overflow = 0x00 }, 436 [0x21] = { .rshift = 0x10, .overflow = 0x80 }, 437 [0x22] = { .rshift = 0x11, .overflow = 0x00 }, 438 [0x23] = { .rshift = 0x11, .overflow = 0x80 }, 439 [0x24] = { .rshift = 0x12, .overflow = 0x00 }, 440 [0x25] = { .rshift = 0x12, .overflow = 0x80 }, 441 [0x26] = { .rshift = 0x13, .overflow = 0x00 }, 442 [0x27] = { .rshift = 0x13, .overflow = 0x80 }, 443 [0x28] = { .rshift = 0x14, .overflow = 0x00 }, 444 [0x29] = { .rshift = 0x14, .overflow = 0x80 }, 445 [0x2a] = { .rshift = 0x15, .overflow = 0x00 }, 446 [0x2b] = { .rshift = 0x15, .overflow = 0x80 }, 447 [0x2c] = { .rshift = 0x16, .overflow = 0x00 }, 448 [0x2d] = { .rshift = 0x16, .overflow = 0x80 }, 449 [0x2e] = { .rshift = 0x17, .overflow = 0x00 }, 450 [0x2f] = { .rshift = 0x17, .overflow = 0x80 }, 451 [0x30] = { .rshift = 0x18, .overflow = 0x00 }, 452 [0x31] = { .rshift = 0x18, .overflow = 0x80 }, 453 [0x32] = { .rshift = 0x19, .overflow = 0x00 }, 454 [0x33] = { .rshift = 0x19, .overflow = 0x80 }, 455 [0x34] = { .rshift = 0x1a, .overflow = 0x00 }, 456 [0x35] = { .rshift = 0x1a, .overflow = 0x80 }, 457 [0x36] = { .rshift = 0x1b, .overflow = 0x00 }, 458 [0x37] = { .rshift = 0x1b, .overflow = 0x80 }, 459 [0x38] = { .rshift = 0x1c, .overflow = 0x00 }, 460 [0x39] = { .rshift = 0x1c, .overflow = 0x80 }, 461 [0x3a] = { .rshift = 0x1d, .overflow = 0x00 }, 462 [0x3b] = { .rshift = 0x1d, .overflow = 0x80 }, 463 [0x3c] = { .rshift = 0x1e, .overflow = 0x00 }, 464 [0x3d] = { .rshift = 0x1e, .overflow = 0x80 }, 465 [0x3e] = { .rshift = 0x1f, .overflow = 0x00 }, 466 [0x3f] = { .rshift = 0x1f, .overflow = 0x80 }, 467 [0x40] = { .rshift = 0x20, .overflow = 0x00 }, 468 [0x41] = { .rshift = 0x20, .overflow = 0x80 }, 469 [0x42] = { .rshift = 0x21, .overflow = 0x00 }, 470 [0x43] = { .rshift = 0x21, .overflow = 0x80 }, 471 [0x44] = { .rshift = 0x22, .overflow = 0x00 }, 472 [0x45] = { .rshift = 0x22, .overflow = 0x80 }, 473 [0x46] = { .rshift = 0x23, .overflow = 0x00 }, 474 [0x47] = { .rshift = 0x23, .overflow = 0x80 }, 475 [0x48] = { .rshift = 0x24, .overflow = 0x00 }, 476 [0x49] = { .rshift = 0x24, .overflow = 0x80 }, 477 [0x4a] = { .rshift = 0x25, .overflow = 0x00 }, 478 [0x4b] = { .rshift = 0x25, .overflow = 0x80 }, 479 [0x4c] = { .rshift = 0x26, .overflow = 0x00 }, 480 [0x4d] = { .rshift = 0x26, .overflow = 0x80 }, 481 [0x4e] = { .rshift = 0x27, .overflow = 0x00 }, 482 [0x4f] = { .rshift = 0x27, .overflow = 0x80 }, 483 [0x50] = { .rshift = 0x28, .overflow = 0x00 }, 484 [0x51] = { .rshift = 0x28, .overflow = 0x80 }, 485 [0x52] = { .rshift = 0x29, .overflow = 0x00 }, 486 [0x53] = { .rshift = 0x29, .overflow = 0x80 }, 487 [0x54] = { .rshift = 0x2a, .overflow = 0x00 }, 488 [0x55] = { .rshift = 0x2a, .overflow = 0x80 }, 489 [0x56] = { .rshift = 0x2b, .overflow = 0x00 }, 490 [0x57] = { .rshift = 0x2b, .overflow = 0x80 }, 491 [0x58] = { .rshift = 0x2c, .overflow = 0x00 }, 492 [0x59] = { .rshift = 0x2c, .overflow = 0x80 }, 493 [0x5a] = { .rshift = 0x2d, .overflow = 0x00 }, 494 [0x5b] = { .rshift = 0x2d, .overflow = 0x80 }, 495 [0x5c] = { .rshift = 0x2e, .overflow = 0x00 }, 496 [0x5d] = { .rshift = 0x2e, .overflow = 0x80 }, 497 [0x5e] = { .rshift = 0x2f, .overflow = 0x00 }, 498 [0x5f] = { .rshift = 0x2f, .overflow = 0x80 }, 499 [0x60] = { .rshift = 0x30, .overflow = 0x00 }, 500 [0x61] = { .rshift = 0x30, .overflow = 0x80 }, 501 [0x62] = { .rshift = 0x31, .overflow = 0x00 }, 502 [0x63] = { .rshift = 0x31, .overflow = 0x80 }, 503 [0x64] = { .rshift = 0x32, .overflow = 0x00 }, 504 [0x65] = { .rshift = 0x32, .overflow = 0x80 }, 505 [0x66] = { .rshift = 0x33, .overflow = 0x00 }, 506 [0x67] = { .rshift = 0x33, .overflow = 0x80 }, 507 [0x68] = { .rshift = 0x34, .overflow = 0x00 }, 508 [0x69] = { .rshift = 0x34, .overflow = 0x80 }, 509 [0x6a] = { .rshift = 0x35, .overflow = 0x00 }, 510 [0x6b] = { .rshift = 0x35, .overflow = 0x80 }, 511 [0x6c] = { .rshift = 0x36, .overflow = 0x00 }, 512 [0x6d] = { .rshift = 0x36, .overflow = 0x80 }, 513 [0x6e] = { .rshift = 0x37, .overflow = 0x00 }, 514 [0x6f] = { .rshift = 0x37, .overflow = 0x80 }, 515 [0x70] = { .rshift = 0x38, .overflow = 0x00 }, 516 [0x71] = { .rshift = 0x38, .overflow = 0x80 }, 517 [0x72] = { .rshift = 0x39, .overflow = 0x00 }, 518 [0x73] = { .rshift = 0x39, .overflow = 0x80 }, 519 [0x74] = { .rshift = 0x3a, .overflow = 0x00 }, 520 [0x75] = { .rshift = 0x3a, .overflow = 0x80 }, 521 [0x76] = { .rshift = 0x3b, .overflow = 0x00 }, 522 [0x77] = { .rshift = 0x3b, .overflow = 0x80 }, 523 [0x78] = { .rshift = 0x3c, .overflow = 0x00 }, 524 [0x79] = { .rshift = 0x3c, .overflow = 0x80 }, 525 [0x7a] = { .rshift = 0x3d, .overflow = 0x00 }, 526 [0x7b] = { .rshift = 0x3d, .overflow = 0x80 }, 527 [0x7c] = { .rshift = 0x3e, .overflow = 0x00 }, 528 [0x7d] = { .rshift = 0x3e, .overflow = 0x80 }, 529 [0x7e] = { .rshift = 0x3f, .overflow = 0x00 }, 530 [0x7f] = { .rshift = 0x3f, .overflow = 0x80 }, 531 [0x80] = { .rshift = 0x40, .overflow = 0x00 }, 532 [0x81] = { .rshift = 0x40, .overflow = 0x80 }, 533 [0x82] = { .rshift = 0x41, .overflow = 0x00 }, 534 [0x83] = { .rshift = 0x41, .overflow = 0x80 }, 535 [0x84] = { .rshift = 0x42, .overflow = 0x00 }, 536 [0x85] = { .rshift = 0x42, .overflow = 0x80 }, 537 [0x86] = { .rshift = 0x43, .overflow = 0x00 }, 538 [0x87] = { .rshift = 0x43, .overflow = 0x80 }, 539 [0x88] = { .rshift = 0x44, .overflow = 0x00 }, 540 [0x89] = { .rshift = 0x44, .overflow = 0x80 }, 541 [0x8a] = { .rshift = 0x45, .overflow = 0x00 }, 542 [0x8b] = { .rshift = 0x45, .overflow = 0x80 }, 543 [0x8c] = { .rshift = 0x46, .overflow = 0x00 }, 544 [0x8d] = { .rshift = 0x46, .overflow = 0x80 }, 545 [0x8e] = { .rshift = 0x47, .overflow = 0x00 }, 546 [0x8f] = { .rshift = 0x47, .overflow = 0x80 }, 547 [0x90] = { .rshift = 0x48, .overflow = 0x00 }, 548 [0x91] = { .rshift = 0x48, .overflow = 0x80 }, 549 [0x92] = { .rshift = 0x49, .overflow = 0x00 }, 550 [0x93] = { .rshift = 0x49, .overflow = 0x80 }, 551 [0x94] = { .rshift = 0x4a, .overflow = 0x00 }, 552 [0x95] = { .rshift = 0x4a, .overflow = 0x80 }, 553 [0x96] = { .rshift = 0x4b, .overflow = 0x00 }, 554 [0x97] = { .rshift = 0x4b, .overflow = 0x80 }, 555 [0x98] = { .rshift = 0x4c, .overflow = 0x00 }, 556 [0x99] = { .rshift = 0x4c, .overflow = 0x80 }, 557 [0x9a] = { .rshift = 0x4d, .overflow = 0x00 }, 558 [0x9b] = { .rshift = 0x4d, .overflow = 0x80 }, 559 [0x9c] = { .rshift = 0x4e, .overflow = 0x00 }, 560 [0x9d] = { .rshift = 0x4e, .overflow = 0x80 }, 561 [0x9e] = { .rshift = 0x4f, .overflow = 0x00 }, 562 [0x9f] = { .rshift = 0x4f, .overflow = 0x80 }, 563 [0xa0] = { .rshift = 0x50, .overflow = 0x00 }, 564 [0xa1] = { .rshift = 0x50, .overflow = 0x80 }, 565 [0xa2] = { .rshift = 0x51, .overflow = 0x00 }, 566 [0xa3] = { .rshift = 0x51, .overflow = 0x80 }, 567 [0xa4] = { .rshift = 0x52, .overflow = 0x00 }, 568 [0xa5] = { .rshift = 0x52, .overflow = 0x80 }, 569 [0xa6] = { .rshift = 0x53, .overflow = 0x00 }, 570 [0xa7] = { .rshift = 0x53, .overflow = 0x80 }, 571 [0xa8] = { .rshift = 0x54, .overflow = 0x00 }, 572 [0xa9] = { .rshift = 0x54, .overflow = 0x80 }, 573 [0xaa] = { .rshift = 0x55, .overflow = 0x00 }, 574 [0xab] = { .rshift = 0x55, .overflow = 0x80 }, 575 [0xac] = { .rshift = 0x56, .overflow = 0x00 }, 576 [0xad] = { .rshift = 0x56, .overflow = 0x80 }, 577 [0xae] = { .rshift = 0x57, .overflow = 0x00 }, 578 [0xaf] = { .rshift = 0x57, .overflow = 0x80 }, 579 [0xb0] = { .rshift = 0x58, .overflow = 0x00 }, 580 [0xb1] = { .rshift = 0x58, .overflow = 0x80 }, 581 [0xb2] = { .rshift = 0x59, .overflow = 0x00 }, 582 [0xb3] = { .rshift = 0x59, .overflow = 0x80 }, 583 [0xb4] = { .rshift = 0x5a, .overflow = 0x00 }, 584 [0xb5] = { .rshift = 0x5a, .overflow = 0x80 }, 585 [0xb6] = { .rshift = 0x5b, .overflow = 0x00 }, 586 [0xb7] = { .rshift = 0x5b, .overflow = 0x80 }, 587 [0xb8] = { .rshift = 0x5c, .overflow = 0x00 }, 588 [0xb9] = { .rshift = 0x5c, .overflow = 0x80 }, 589 [0xba] = { .rshift = 0x5d, .overflow = 0x00 }, 590 [0xbb] = { .rshift = 0x5d, .overflow = 0x80 }, 591 [0xbc] = { .rshift = 0x5e, .overflow = 0x00 }, 592 [0xbd] = { .rshift = 0x5e, .overflow = 0x80 }, 593 [0xbe] = { .rshift = 0x5f, .overflow = 0x00 }, 594 [0xbf] = { .rshift = 0x5f, .overflow = 0x80 }, 595 [0xc0] = { .rshift = 0x60, .overflow = 0x00 }, 596 [0xc1] = { .rshift = 0x60, .overflow = 0x80 }, 597 [0xc2] = { .rshift = 0x61, .overflow = 0x00 }, 598 [0xc3] = { .rshift = 0x61, .overflow = 0x80 }, 599 [0xc4] = { .rshift = 0x62, .overflow = 0x00 }, 600 [0xc5] = { .rshift = 0x62, .overflow = 0x80 }, 601 [0xc6] = { .rshift = 0x63, .overflow = 0x00 }, 602 [0xc7] = { .rshift = 0x63, .overflow = 0x80 }, 603 [0xc8] = { .rshift = 0x64, .overflow = 0x00 }, 604 [0xc9] = { .rshift = 0x64, .overflow = 0x80 }, 605 [0xca] = { .rshift = 0x65, .overflow = 0x00 }, 606 [0xcb] = { .rshift = 0x65, .overflow = 0x80 }, 607 [0xcc] = { .rshift = 0x66, .overflow = 0x00 }, 608 [0xcd] = { .rshift = 0x66, .overflow = 0x80 }, 609 [0xce] = { .rshift = 0x67, .overflow = 0x00 }, 610 [0xcf] = { .rshift = 0x67, .overflow = 0x80 }, 611 [0xd0] = { .rshift = 0x68, .overflow = 0x00 }, 612 [0xd1] = { .rshift = 0x68, .overflow = 0x80 }, 613 [0xd2] = { .rshift = 0x69, .overflow = 0x00 }, 614 [0xd3] = { .rshift = 0x69, .overflow = 0x80 }, 615 [0xd4] = { .rshift = 0x6a, .overflow = 0x00 }, 616 [0xd5] = { .rshift = 0x6a, .overflow = 0x80 }, 617 [0xd6] = { .rshift = 0x6b, .overflow = 0x00 }, 618 [0xd7] = { .rshift = 0x6b, .overflow = 0x80 }, 619 [0xd8] = { .rshift = 0x6c, .overflow = 0x00 }, 620 [0xd9] = { .rshift = 0x6c, .overflow = 0x80 }, 621 [0xda] = { .rshift = 0x6d, .overflow = 0x00 }, 622 [0xdb] = { .rshift = 0x6d, .overflow = 0x80 }, 623 [0xdc] = { .rshift = 0x6e, .overflow = 0x00 }, 624 [0xdd] = { .rshift = 0x6e, .overflow = 0x80 }, 625 [0xde] = { .rshift = 0x6f, .overflow = 0x00 }, 626 [0xdf] = { .rshift = 0x6f, .overflow = 0x80 }, 627 [0xe0] = { .rshift = 0x70, .overflow = 0x00 }, 628 [0xe1] = { .rshift = 0x70, .overflow = 0x80 }, 629 [0xe2] = { .rshift = 0x71, .overflow = 0x00 }, 630 [0xe3] = { .rshift = 0x71, .overflow = 0x80 }, 631 [0xe4] = { .rshift = 0x72, .overflow = 0x00 }, 632 [0xe5] = { .rshift = 0x72, .overflow = 0x80 }, 633 [0xe6] = { .rshift = 0x73, .overflow = 0x00 }, 634 [0xe7] = { .rshift = 0x73, .overflow = 0x80 }, 635 [0xe8] = { .rshift = 0x74, .overflow = 0x00 }, 636 [0xe9] = { .rshift = 0x74, .overflow = 0x80 }, 637 [0xea] = { .rshift = 0x75, .overflow = 0x00 }, 638 [0xeb] = { .rshift = 0x75, .overflow = 0x80 }, 639 [0xec] = { .rshift = 0x76, .overflow = 0x00 }, 640 [0xed] = { .rshift = 0x76, .overflow = 0x80 }, 641 [0xee] = { .rshift = 0x77, .overflow = 0x00 }, 642 [0xef] = { .rshift = 0x77, .overflow = 0x80 }, 643 [0xf0] = { .rshift = 0x78, .overflow = 0x00 }, 644 [0xf1] = { .rshift = 0x78, .overflow = 0x80 }, 645 [0xf2] = { .rshift = 0x79, .overflow = 0x00 }, 646 [0xf3] = { .rshift = 0x79, .overflow = 0x80 }, 647 [0xf4] = { .rshift = 0x7a, .overflow = 0x00 }, 648 [0xf5] = { .rshift = 0x7a, .overflow = 0x80 }, 649 [0xf6] = { .rshift = 0x7b, .overflow = 0x00 }, 650 [0xf7] = { .rshift = 0x7b, .overflow = 0x80 }, 651 [0xf8] = { .rshift = 0x7c, .overflow = 0x00 }, 652 [0xf9] = { .rshift = 0x7c, .overflow = 0x80 }, 653 [0xfa] = { .rshift = 0x7d, .overflow = 0x00 }, 654 [0xfb] = { .rshift = 0x7d, .overflow = 0x80 }, 655 [0xfc] = { .rshift = 0x7e, .overflow = 0x00 }, 656 [0xfd] = { .rshift = 0x7e, .overflow = 0x80 }, 657 [0xfe] = { .rshift = 0x7f, .overflow = 0x00 }, 658 [0xff] = { .rshift = 0x7f, .overflow = 0x80 }, 659 }; 660 uint8_t i; 661 uint8_t overflow = 0; 662 663 for (i = 0; i < AES_BLOCK_SIZE; i++) { 664 const struct aes_block_rshift_entry *e = &aes_block_rshift_table[in[i]]; 665 out[i] = e->rshift | overflow; 666 overflow = e->overflow; 667 } 668 } 83 669 #endif /* LIB_CRYPTO_AES_H */ -
vendor/current/lib/crypto/arcfour.c
r740 r988 82 82 _PUBLIC_ void arcfour_crypt(uint8_t *data, const uint8_t keystr[16], int len) 83 83 { 84 DATA_BLOB key = data_blob(keystr, 16); 85 84 uint8_t keycopy[16]; 85 DATA_BLOB key = { .data = keycopy, .length = sizeof(keycopy) }; 86 87 memcpy(keycopy, keystr, sizeof(keycopy)); 88 86 89 arcfour_crypt_blob(data, len, &key); 87 88 data_blob_free(&key);89 90 } 90 91 -
vendor/current/lib/crypto/crypto.h
r414 r988 18 18 */ 19 19 20 #ifndef _SAMBA_CRYPTO_H_ 21 #define _SAMBA_CRYPTO_H_ 22 20 23 #include "../lib/crypto/crc32.h" 21 24 #include "../lib/crypto/md4.h" … … 26 29 #include "../lib/crypto/arcfour.h" 27 30 #include "../lib/crypto/aes.h" 31 #include "../lib/crypto/aes_cmac_128.h" 32 #include "../lib/crypto/aes_ccm_128.h" 33 #include "../lib/crypto/aes_gcm_128.h" 28 34 35 #endif /* _SAMBA_CRYPTO_H_ */ -
vendor/current/lib/crypto/hmacmd5.c
r746 r988 37 37 if (key_len > 64) 38 38 { 39 39 MD5_CTX tctx; 40 40 41 41 MD5Init(&tctx); … … 92 92 _PUBLIC_ void hmac_md5_final(uint8_t *digest, HMACMD5Context *ctx) 93 93 { 94 94 MD5_CTX ctx_o; 95 95 96 96 MD5Final(digest, &ctx->ctx); -
vendor/current/lib/crypto/hmacmd5.h
r746 r988 26 26 typedef struct 27 27 { 28 28 MD5_CTX ctx; 29 29 uint8_t k_ipad[65]; 30 30 uint8_t k_opad[65]; -
vendor/current/lib/crypto/hmacmd5test.c
r740 r988 18 18 */ 19 19 #include "replace.h" 20 #include "../lib/util/ util.h"20 #include "../lib/util/samba_util.h" 21 21 #include "../lib/crypto/crypto.h" 22 22 23 23 struct torture_context; 24 bool torture_local_crypto_hmacmd5(struct torture_context *torture); 24 25 25 26 static DATA_BLOB data_blob_repeat_byte(uint8_t byte, size_t length) -
vendor/current/lib/crypto/hmacsha256.c
r740 r988 43 43 SHA256_CTX tctx; 44 44 45 SHA256_Init(&tctx);46 SHA256_Update(&tctx, key, key_len);47 SHA256_Final(tk, &tctx);45 samba_SHA256_Init(&tctx); 46 samba_SHA256_Update(&tctx, key, key_len); 47 samba_SHA256_Final(tk, &tctx); 48 48 49 49 key = tk; … … 64 64 } 65 65 66 SHA256_Init(&ctx->ctx);67 SHA256_Update(&ctx->ctx, ctx->k_ipad, 64);66 samba_SHA256_Init(&ctx->ctx); 67 samba_SHA256_Update(&ctx->ctx, ctx->k_ipad, 64); 68 68 } 69 69 … … 73 73 _PUBLIC_ void hmac_sha256_update(const uint8_t *data, size_t data_len, struct HMACSHA256Context *ctx) 74 74 { 75 SHA256_Update(&ctx->ctx, data, data_len); /* then text of datagram */75 samba_SHA256_Update(&ctx->ctx, data, data_len); /* then text of datagram */ 76 76 } 77 77 … … 83 83 SHA256_CTX ctx_o; 84 84 85 SHA256_Final(digest, &ctx->ctx);85 samba_SHA256_Final(digest, &ctx->ctx); 86 86 87 SHA256_Init(&ctx_o);88 SHA256_Update(&ctx_o, ctx->k_opad, 64);89 SHA256_Update(&ctx_o, digest, SHA256_DIGEST_LENGTH);90 SHA256_Final(digest, &ctx_o);87 samba_SHA256_Init(&ctx_o); 88 samba_SHA256_Update(&ctx_o, ctx->k_opad, 64); 89 samba_SHA256_Update(&ctx_o, digest, SHA256_DIGEST_LENGTH); 90 samba_SHA256_Final(digest, &ctx_o); 91 91 } -
vendor/current/lib/crypto/hmacsha256.h
r414 r988 34 34 void hmac_sha256_init(const uint8_t *key, size_t key_len, struct HMACSHA256Context *ctx); 35 35 void hmac_sha256_update(const uint8_t *data, size_t data_len, struct HMACSHA256Context *ctx); 36 void hmac_sha256_final(uint8_t digest[ 20], struct HMACSHA256Context *ctx);36 void hmac_sha256_final(uint8_t digest[SHA256_DIGEST_LENGTH], struct HMACSHA256Context *ctx); 37 37 38 38 #endif /* _HMAC_SHA256_H */ -
vendor/current/lib/crypto/md4test.c
r740 r988 19 19 20 20 #include "replace.h" 21 #include "../lib/util/ util.h"21 #include "../lib/util/samba_util.h" 22 22 #include "../lib/crypto/crypto.h" 23 23 24 24 struct torture_context; 25 bool torture_local_crypto_md4(struct torture_context *torture); 25 26 26 27 /* -
vendor/current/lib/crypto/md5.c
r740 r988 44 44 * initialization constants. 45 45 */ 46 _PUBLIC_ void MD5Init( struct MD5Context*ctx)46 _PUBLIC_ void MD5Init(MD5_CTX *ctx) 47 47 { 48 48 ctx->buf[0] = 0x67452301; … … 59 59 * of bytes. 60 60 */ 61 _PUBLIC_ void MD5Update( struct MD5Context*ctx, const uint8_t *buf, size_t len)61 _PUBLIC_ void MD5Update(MD5_CTX *ctx, const uint8_t *buf, size_t len) 62 62 { 63 63 register uint32_t t; … … 107 107 * 1 0* (64-bit count of bits processed, MSB-first) 108 108 */ 109 _PUBLIC_ void MD5Final(uint8_t digest[16], struct MD5Context*ctx)109 _PUBLIC_ void MD5Final(uint8_t digest[16], MD5_CTX *ctx) 110 110 { 111 111 unsigned int count; … … 138 138 byteReverse(ctx->in, 14); 139 139 140 /* Append length in bits and transform */ 141 ((uint32_t *) ctx->in)[14] = ctx->bits[0]; 142 ((uint32_t *) ctx->in)[15] = ctx->bits[1]; 140 /* Append length in bits and transform. 141 * Use memcpy to avoid strict-aliasing problems. 142 * This way it can be optimized. 143 */ 144 memcpy(&ctx->in[14 * sizeof(uint32_t)], &ctx->bits[0], sizeof(uint32_t)); 145 memcpy(&ctx->in[15 * sizeof(uint32_t)], &ctx->bits[1], sizeof(uint32_t)); 143 146 144 147 MD5Transform(ctx->buf, (uint32_t *) ctx->in); -
vendor/current/lib/crypto/md5.h
r746 r988 1 1 #ifndef MD5_H 2 2 #define MD5_H 3 3 4 #ifndef HEADER_MD5_H 4 5 /* Try to avoid clashes with OpenSSL */ … … 6 7 #endif 7 8 8 #ifdef HAVE_MD5_H 9 /* 10 * Try to avoid clashes with Solaris MD5 implementation. 11 * ...where almost all implementations follows: 12 * "Schneier's Cryptography Classics Library" 13 */ 14 #include <md5.h> 9 #if defined(HAVE_BSD_MD5_H) 10 /* Try to avoid clashes with BSD MD5 implementation (on linux) */ 11 #include <bsd/md5.h> 12 13 #elif defined(HAVE_SYS_MD5_H) 14 /* Try to avoid clashes with BSD MD5 implementation (on BSD) */ 15 #include <sys/md5.h> 16 17 /* Try to use CommonCrypto on Mac as otherwise we can get MD5Final twice */ 18 #elif defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H) 19 #include <CommonCrypto/CommonDigest.h> 20 21 #define MD5_CTX CC_MD5_CTX 22 #define MD5Init(c) CC_MD5_Init(c) 23 #define MD5Update(c,d,l) CC_MD5_Update(c,d,l) 24 #define MD5Final(m, c) CC_MD5_Final((unsigned char *)m,c) 25 #define MD5Context CC_MD5state_st 26 15 27 #else 16 17 struct MD5Context { 28 typedef struct MD5Context { 18 29 uint32_t buf[4]; 19 30 uint32_t bits[2]; 20 31 uint8_t in[64]; 21 }; 22 typedef struct MD5Context MD5_CTX; 32 } MD5_CTX; 23 33 24 void MD5Init(struct MD5Context *context); 25 void MD5Update(struct MD5Context *context, const uint8_t *buf, 34 #define MD5_DIGEST_LENGTH 16 35 36 void MD5Init(MD5_CTX *context); 37 void MD5Update(MD5_CTX *context, const uint8_t *buf, 26 38 size_t len); 27 void MD5Final(uint8_t digest[16], struct MD5Context *context); 28 29 #endif /* !HAVE_MD5_H */ 39 void MD5Final(uint8_t digest[MD5_DIGEST_LENGTH], MD5_CTX *context); 40 #endif /* HAVE_*MD5_H */ 30 41 31 42 #endif /* !MD5_H */ -
vendor/current/lib/crypto/md5test.c
r746 r988 19 19 20 20 #include "replace.h" 21 #include "../lib/util/ util.h"21 #include "../lib/util/samba_util.h" 22 22 #include "../lib/crypto/crypto.h" 23 23 24 24 struct torture_context; 25 26 bool torture_local_crypto_md5(struct torture_context *torture); 25 27 26 28 /* -
vendor/current/lib/crypto/sha256.c
r740 r988 81 81 82 82 void 83 SHA256_Init (SHA256_CTX *m)83 samba_SHA256_Init (SHA256_CTX *m) 84 84 { 85 85 m->sz[0] = 0; … … 188 188 189 189 void 190 SHA256_Update (SHA256_CTX *m, const void *v, size_t len)190 samba_SHA256_Update (SHA256_CTX *m, const void *v, size_t len) 191 191 { 192 192 const unsigned char *p = (const unsigned char *)v; … … 223 223 224 224 void 225 SHA256_Final (void *res, SHA256_CTX *m)225 samba_SHA256_Final (void *res, SHA256_CTX *m) 226 226 { 227 227 unsigned char zeros[72]; … … 239 239 zeros[dstart+1] = (m->sz[1] >> 16) & 0xff; 240 240 zeros[dstart+0] = (m->sz[1] >> 24) & 0xff; 241 SHA256_Update (m, zeros, dstart + 8);241 samba_SHA256_Update (m, zeros, dstart + 8); 242 242 { 243 243 int i; -
vendor/current/lib/crypto/sha256.h
r414 r988 43 43 #define HEIM_SHA_H 1 44 44 45 #if 045 #if SHA1_RENAME_NEEDED 46 46 /* symbol renaming */ 47 47 #define SHA1_Init hc_SHA1_Init 48 48 #define SHA1_Update hc_SHA1_Update 49 49 #define SHA1_Final hc_SHA1_Final 50 #endif 51 #if SHA256_RENAME_NEEDED 52 /* symbol renaming */ 50 53 #define SHA256_Init hc_SHA256_Init 51 54 #define SHA256_Update hc_SHA256_Update … … 85 88 typedef struct hc_sha256state SHA256_CTX; 86 89 87 void SHA256_Init (SHA256_CTX *);88 void SHA256_Update (SHA256_CTX *, const void *, size_t);89 void SHA256_Final (void *, SHA256_CTX *);90 void samba_SHA256_Init (SHA256_CTX *); 91 void samba_SHA256_Update (SHA256_CTX *, const void *, size_t); 92 void samba_SHA256_Final (void *, SHA256_CTX *); 90 93 91 94 #endif /* HEIM_SHA_H */ -
vendor/current/lib/crypto/wscript_build
r740 r988 1 1 #!/usr/bin/env python 2 2 3 extra_source = '' 4 extra_deps = '' 5 if bld.CONFIG_SET('HAVE_BSD_MD5_H'): 6 extra_deps += ' bsd' 7 elif bld.CONFIG_SET('HAVE_SYS_MD5_H') and bld.CONFIG_SET('HAVE_LIBMD5'): 8 extra_deps += ' md5' 9 elif bld.CONFIG_SET('HAVE_SYS_MD5_H') and bld.CONFIG_SET('HAVE_LIBMD'): 10 extra_deps += ' md' 11 elif not bld.CONFIG_SET('HAVE_SYS_MD5_H') and not bld.CONFIG_SET('HAVE_COMMONCRYPTO_COMMONDIGEST_H'): 12 extra_source += ' md5.c' 13 3 14 bld.SAMBA_SUBSYSTEM('LIBCRYPTO', 4 source='crc32.c md5.c hmacmd5.c md4.c arcfour.c sha256.c hmacsha256.c aes.c rijndael-alg-fst.c', 5 deps='talloc' 6 ) 7 15 source='''crc32.c hmacmd5.c md4.c arcfour.c sha256.c sha512.c hmacsha256.c 16 aes.c rijndael-alg-fst.c aes_cmac_128.c aes_ccm_128.c aes_gcm_128.c 17 ''' + extra_source, 18 deps='talloc' + extra_deps 19 ) 8 20 9 21 bld.SAMBA_SUBSYSTEM('TORTURE_LIBCRYPTO', 10 source='md4test.c md5test.c hmacmd5test.c', 11 autoproto='test_proto.h', 12 deps='LIBCRYPTO' 13 ) 14 22 source='''md4test.c md5test.c hmacmd5test.c 23 aes_cmac_128_test.c aes_ccm_128_test.c aes_gcm_128_test.c 24 ''', 25 autoproto='test_proto.h', 26 deps='LIBCRYPTO' 27 )
Note:
See TracChangeset
for help on using the changeset viewer.