|
1 |
| -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ |
2 |
| -/* ==================================================================== |
3 |
| - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
4 |
| - * |
5 |
| - * Redistribution and use in source and binary forms, with or without |
6 |
| - * modification, are permitted provided that the following conditions |
7 |
| - * are met: |
8 |
| - * |
9 |
| - * 1. Redistributions of source code must retain the above copyright |
10 |
| - * notice, this list of conditions and the following disclaimer. |
11 |
| - * |
12 |
| - * 2. Redistributions in binary form must reproduce the above copyright |
13 |
| - * notice, this list of conditions and the following disclaimer in |
14 |
| - * the documentation and/or other materials provided with the |
15 |
| - * distribution. |
16 |
| - * |
17 |
| - * 3. All advertising materials mentioning features or use of this |
18 |
| - * software must display the following acknowledgment: |
19 |
| - * "This product includes software developed by the OpenSSL Project |
20 |
| - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" |
21 |
| - * |
22 |
| - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to |
23 |
| - * endorse or promote products derived from this software without |
24 |
| - * prior written permission. For written permission, please contact |
25 |
| - |
26 |
| - * |
27 |
| - * 5. Products derived from this software may not be called "OpenSSL" |
28 |
| - * nor may "OpenSSL" appear in their names without prior written |
29 |
| - * permission of the OpenSSL Project. |
30 |
| - * |
31 |
| - * 6. Redistributions of any form whatsoever must retain the following |
32 |
| - * acknowledgment: |
33 |
| - * "This product includes software developed by the OpenSSL Project |
34 |
| - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" |
35 |
| - * |
36 |
| - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY |
37 |
| - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
38 |
| - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
39 |
| - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR |
40 |
| - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
41 |
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
42 |
| - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
43 |
| - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
44 |
| - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
45 |
| - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
46 |
| - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
47 |
| - * OF THE POSSIBILITY OF SUCH DAMAGE. |
48 |
| - * ==================================================================== |
| 1 | +/* |
| 2 | + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. |
49 | 3 | *
|
| 4 | + * Licensed under the OpenSSL license (the "License"). You may not use |
| 5 | + * this file except in compliance with the License. You can obtain a copy |
| 6 | + * in the file LICENSE in the source distribution or at |
| 7 | + * https://www.openssl.org/source/license.html |
50 | 8 | */
|
51 | 9 |
|
52 | 10 | #ifndef HEADER_AES_H
|
53 |
| -#define HEADER_AES_H |
| 11 | +# define HEADER_AES_H |
54 | 12 |
|
55 |
| -#include <openssl/opensslconf.h> |
56 |
| - |
57 |
| -#ifdef OPENSSL_NO_AES |
58 |
| -#error AES is disabled. |
59 |
| -#endif |
| 13 | +# include <openssl/opensslconf.h> |
60 | 14 |
|
61 |
| -#include <stddef.h> |
62 |
| - |
63 |
| -#define AES_ENCRYPT 1 |
64 |
| -#define AES_DECRYPT 0 |
| 15 | +# include <stddef.h> |
| 16 | +# ifdef __cplusplus |
| 17 | +extern "C" { |
| 18 | +# endif |
65 | 19 |
|
66 |
| -/* Because array size can't be a const in C, the following two are macros. |
67 |
| - Both sizes are in bytes. */ |
68 |
| -#define AES_MAXNR 14 |
69 |
| -#define AES_BLOCK_SIZE 16 |
| 20 | +# define AES_ENCRYPT 1 |
| 21 | +# define AES_DECRYPT 0 |
70 | 22 |
|
71 |
| -#ifdef __cplusplus |
72 |
| -extern "C" { |
73 |
| -#endif |
| 23 | +/* |
| 24 | + * Because array size can't be a const in C, the following two are macros. |
| 25 | + * Both sizes are in bytes. |
| 26 | + */ |
| 27 | +# define AES_MAXNR 14 |
| 28 | +# define AES_BLOCK_SIZE 16 |
74 | 29 |
|
75 | 30 | /* This should be a hidden type, but EVP requires that the size be known */
|
76 | 31 | struct aes_key_st {
|
77 |
| -#ifdef AES_LONG |
78 |
| - unsigned long rd_key[4 *(AES_MAXNR + 1)]; |
79 |
| -#else |
80 |
| - unsigned int rd_key[4 *(AES_MAXNR + 1)]; |
81 |
| -#endif |
| 32 | +# ifdef AES_LONG |
| 33 | + unsigned long rd_key[4 * (AES_MAXNR + 1)]; |
| 34 | +# else |
| 35 | + unsigned int rd_key[4 * (AES_MAXNR + 1)]; |
| 36 | +# endif |
82 | 37 | int rounds;
|
83 | 38 | };
|
84 | 39 | typedef struct aes_key_st AES_KEY;
|
85 | 40 |
|
86 | 41 | const char *AES_options(void);
|
87 | 42 |
|
88 | 43 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
89 |
| - AES_KEY *key); |
| 44 | + AES_KEY *key); |
90 | 45 | int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
91 |
| - AES_KEY *key); |
92 |
| - |
93 |
| -int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, |
94 |
| - AES_KEY *key); |
95 |
| -int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, |
96 |
| - AES_KEY *key); |
| 46 | + AES_KEY *key); |
97 | 47 |
|
98 | 48 | void AES_encrypt(const unsigned char *in, unsigned char *out,
|
99 |
| - const AES_KEY *key); |
| 49 | + const AES_KEY *key); |
100 | 50 | void AES_decrypt(const unsigned char *in, unsigned char *out,
|
101 |
| - const AES_KEY *key); |
| 51 | + const AES_KEY *key); |
102 | 52 |
|
103 | 53 | void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,
|
104 |
| - const AES_KEY *key, const int enc); |
| 54 | + const AES_KEY *key, const int enc); |
105 | 55 | void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
106 |
| - size_t length, const AES_KEY *key, |
107 |
| - unsigned char *ivec, const int enc); |
| 56 | + size_t length, const AES_KEY *key, |
| 57 | + unsigned char *ivec, const int enc); |
108 | 58 | void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
|
109 |
| - size_t length, const AES_KEY *key, |
110 |
| - unsigned char *ivec, int *num, const int enc); |
| 59 | + size_t length, const AES_KEY *key, |
| 60 | + unsigned char *ivec, int *num, const int enc); |
111 | 61 | void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
|
112 |
| - size_t length, const AES_KEY *key, |
113 |
| - unsigned char *ivec, int *num, const int enc); |
| 62 | + size_t length, const AES_KEY *key, |
| 63 | + unsigned char *ivec, int *num, const int enc); |
114 | 64 | void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
|
115 |
| - size_t length, const AES_KEY *key, |
116 |
| - unsigned char *ivec, int *num, const int enc); |
| 65 | + size_t length, const AES_KEY *key, |
| 66 | + unsigned char *ivec, int *num, const int enc); |
117 | 67 | void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
|
118 |
| - size_t length, const AES_KEY *key, |
119 |
| - unsigned char *ivec, int *num); |
120 |
| -void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, |
121 |
| - size_t length, const AES_KEY *key, |
122 |
| - unsigned char ivec[AES_BLOCK_SIZE], |
123 |
| - unsigned char ecount_buf[AES_BLOCK_SIZE], |
124 |
| - unsigned int *num); |
| 68 | + size_t length, const AES_KEY *key, |
| 69 | + unsigned char *ivec, int *num); |
125 | 70 | /* NB: the IV is _two_ blocks long */
|
126 | 71 | void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
|
127 |
| - size_t length, const AES_KEY *key, |
128 |
| - unsigned char *ivec, const int enc); |
| 72 | + size_t length, const AES_KEY *key, |
| 73 | + unsigned char *ivec, const int enc); |
129 | 74 | /* NB: the IV is _four_ blocks long */
|
130 | 75 | void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
|
131 |
| - size_t length, const AES_KEY *key, |
132 |
| - const AES_KEY *key2, const unsigned char *ivec, |
133 |
| - const int enc); |
| 76 | + size_t length, const AES_KEY *key, |
| 77 | + const AES_KEY *key2, const unsigned char *ivec, |
| 78 | + const int enc); |
134 | 79 |
|
135 | 80 | int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
|
136 |
| - unsigned char *out, |
137 |
| - const unsigned char *in, unsigned int inlen); |
| 81 | + unsigned char *out, |
| 82 | + const unsigned char *in, unsigned int inlen); |
138 | 83 | int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
|
139 |
| - unsigned char *out, |
140 |
| - const unsigned char *in, unsigned int inlen); |
| 84 | + unsigned char *out, |
| 85 | + const unsigned char *in, unsigned int inlen); |
141 | 86 |
|
142 | 87 |
|
143 |
| -#ifdef __cplusplus |
| 88 | +# ifdef __cplusplus |
144 | 89 | }
|
145 |
| -#endif |
| 90 | +# endif |
146 | 91 |
|
147 |
| -#endif /* !HEADER_AES_H */ |
| 92 | +#endif |
0 commit comments