aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/openssl/crypto/aes/aes_local.h
blob: c9f277e7a31938063f9b13adba1df155fd19f878 (plain) (blame)
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
/* 
 * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved. 
 * 
 * Licensed under the OpenSSL license (the "License").  You may not use 
 * this file except in compliance with the License.  You can obtain a copy 
 * in the file LICENSE in the source distribution or at 
 * https://www.openssl.org/source/license.html 
 */ 
 
#ifndef OSSL_CRYPTO_AES_LOCAL_H 
# define OSSL_CRYPTO_AES_LOCAL_H 
 
# include <openssl/e_os2.h> 
# include <stdio.h> 
# include <stdlib.h> 
# include <string.h> 
 
# if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) 
#  define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) 
#  define GETU32(p) SWAP(*((u32 *)(p))) 
#  define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } 
# else 
#  define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3])) 
#  define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); } 
# endif 
 
typedef unsigned long long u64; 
# ifdef AES_LONG 
typedef unsigned long u32; 
# else 
typedef unsigned int u32; 
# endif 
typedef unsigned short u16; 
typedef unsigned char u8; 
 
# define MAXKC   (256/32) 
# define MAXKB   (256/8) 
# define MAXNR   14 
 
/* This controls loop-unrolling in aes_core.c */ 
# undef FULL_UNROLL 
 
#endif                          /* !OSSL_CRYPTO_AES_LOCAL_H */