Print this page
4853 illumos-gate is not lint-clean when built with openssl 1.0
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/lib/openssl/include/modes_lcl.h
+++ new/usr/src/lib/openssl/include/modes_lcl.h
1 1 /* ====================================================================
2 2 * Copyright (c) 2010 The OpenSSL Project. All rights reserved.
3 3 *
4 4 * Redistribution and use is governed by OpenSSL license.
5 5 * ====================================================================
6 6 */
7 7
8 8 #include <openssl/modes.h>
9 9
10 10
11 11 #if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
12 12 typedef __int64 i64;
13 13 typedef unsigned __int64 u64;
14 14 #define U64(C) C##UI64
15 15 #elif defined(__arch64__)
16 16 typedef long i64;
17 17 typedef unsigned long u64;
18 18 #define U64(C) C##UL
19 19 #else
20 20 typedef long long i64;
21 21 typedef unsigned long long u64;
22 22 #define U64(C) C##ULL
23 23 #endif
24 24
25 25 typedef unsigned int u32;
26 26 typedef unsigned char u8;
27 27
28 28 #define STRICT_ALIGNMENT 1
29 29 #if defined(__i386) || defined(__i386__) || \
↓ open down ↓ |
29 lines elided |
↑ open up ↑ |
30 30 defined(__x86_64) || defined(__x86_64__) || \
31 31 defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \
32 32 defined(__s390__) || defined(__s390x__)
33 33 # undef STRICT_ALIGNMENT
34 34 #endif
35 35
36 36 #if !defined(PEDANTIC) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
37 37 #if defined(__GNUC__) && __GNUC__>=2
38 38 # if defined(__x86_64) || defined(__x86_64__)
39 39 # define BSWAP8(x) ({ u64 ret=(x); \
40 - asm ("bswapq %0" \
40 + __asm__ ("bswapq %0" \
41 41 : "+r"(ret)); ret; })
42 42 # define BSWAP4(x) ({ u32 ret=(x); \
43 - asm ("bswapl %0" \
43 + __asm__ ("bswapl %0" \
44 44 : "+r"(ret)); ret; })
45 45 # elif (defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)
46 46 # define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
47 - asm ("bswapl %0; bswapl %1" \
47 + __asm__ ("bswapl %0; bswapl %1" \
48 48 : "+r"(hi),"+r"(lo)); \
49 49 (u64)hi<<32|lo; })
50 50 # define BSWAP4(x) ({ u32 ret=(x); \
51 - asm ("bswapl %0" \
51 + __asm__ ("bswapl %0" \
52 52 : "+r"(ret)); ret; })
53 53 # elif (defined(__arm__) || defined(__arm)) && !defined(STRICT_ALIGNMENT)
54 54 # define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
55 - asm ("rev %0,%0; rev %1,%1" \
55 + __asm__ ("rev %0,%0; rev %1,%1" \
56 56 : "+r"(hi),"+r"(lo)); \
57 57 (u64)hi<<32|lo; })
58 58 # define BSWAP4(x) ({ u32 ret; \
59 - asm ("rev %0,%1" \
59 + __asm__ ("rev %0,%1" \
60 60 : "=r"(ret) : "r"((u32)(x))); \
61 61 ret; })
62 62 # endif
63 63 #elif defined(_MSC_VER)
64 64 # if _MSC_VER>=1300
65 65 # pragma intrinsic(_byteswap_uint64,_byteswap_ulong)
66 66 # define BSWAP8(x) _byteswap_uint64((u64)(x))
67 67 # define BSWAP4(x) _byteswap_ulong((u32)(x))
68 68 # elif defined(_M_IX86)
69 69 __inline u32 _bswap4(u32 val) {
70 70 _asm mov eax,val
71 71 _asm bswap eax
72 72 }
73 73 # define BSWAP4(x) _bswap4(x)
74 74 # endif
75 75 #endif
76 76 #endif
77 77
78 78 #if defined(BSWAP4) && !defined(STRICT_ALIGNMENT)
79 79 #define GETU32(p) BSWAP4(*(const u32 *)(p))
80 80 #define PUTU32(p,v) *(u32 *)(p) = BSWAP4(v)
81 81 #else
82 82 #define GETU32(p) ((u32)(p)[0]<<24|(u32)(p)[1]<<16|(u32)(p)[2]<<8|(u32)(p)[3])
83 83 #define PUTU32(p,v) ((p)[0]=(u8)((v)>>24),(p)[1]=(u8)((v)>>16),(p)[2]=(u8)((v)>>8),(p)[3]=(u8)(v))
84 84 #endif
85 85
86 86 /* GCM definitions */
87 87
88 88 typedef struct { u64 hi,lo; } u128;
89 89
90 90 #ifdef TABLE_BITS
91 91 #undef TABLE_BITS
92 92 #endif
93 93 /*
94 94 * Even though permitted values for TABLE_BITS are 8, 4 and 1, it should
95 95 * never be set to 8 [or 1]. For further information see gcm128.c.
96 96 */
97 97 #define TABLE_BITS 4
98 98
99 99 struct gcm128_context {
100 100 /* Following 6 names follow names in GCM specification */
101 101 union { u64 u[2]; u32 d[4]; u8 c[16]; size_t t[16/sizeof(size_t)]; }
102 102 Yi,EKi,EK0,len,Xi,H;
103 103 /* Relative position of Xi, H and pre-computed Htable is used
104 104 * in some assembler modules, i.e. don't change the order! */
105 105 #if TABLE_BITS==8
106 106 u128 Htable[256];
107 107 #else
108 108 u128 Htable[16];
109 109 void (*gmult)(u64 Xi[2],const u128 Htable[16]);
110 110 void (*ghash)(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
111 111 #endif
112 112 unsigned int mres, ares;
113 113 block128_f block;
114 114 void *key;
115 115 };
116 116
117 117 struct xts128_context {
118 118 void *key1, *key2;
119 119 block128_f block1,block2;
120 120 };
121 121
122 122 struct ccm128_context {
123 123 union { u64 u[2]; u8 c[16]; } nonce, cmac;
124 124 u64 blocks;
125 125 block128_f block;
126 126 void *key;
127 127 };
↓ open down ↓ |
58 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX