OLD | NEW |
1 /* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ | 1 /* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ |
2 /* ==================================================================== | 2 /* ==================================================================== |
3 * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | 3 * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 | 51 |
52 #ifndef HEADER_AES_H | 52 #ifndef HEADER_AES_H |
53 #define HEADER_AES_H | 53 #define HEADER_AES_H |
54 | 54 |
55 #include <openssl/opensslconf.h> | 55 #include <openssl/opensslconf.h> |
56 | 56 |
57 #ifdef OPENSSL_NO_AES | 57 #ifdef OPENSSL_NO_AES |
58 #error AES is disabled. | 58 #error AES is disabled. |
59 #endif | 59 #endif |
60 | 60 |
| 61 #include <stddef.h> |
| 62 |
61 #define AES_ENCRYPT 1 | 63 #define AES_ENCRYPT 1 |
62 #define AES_DECRYPT 0 | 64 #define AES_DECRYPT 0 |
63 | 65 |
64 /* Because array size can't be a const in C, the following two are macros. | 66 /* Because array size can't be a const in C, the following two are macros. |
65 Both sizes are in bytes. */ | 67 Both sizes are in bytes. */ |
66 #define AES_MAXNR 14 | 68 #define AES_MAXNR 14 |
67 #define AES_BLOCK_SIZE 16 | 69 #define AES_BLOCK_SIZE 16 |
68 | 70 |
69 #ifdef OPENSSL_FIPS | |
70 #define FIPS_AES_SIZE_T int | |
71 #endif | |
72 | |
73 #ifdef __cplusplus | 71 #ifdef __cplusplus |
74 extern "C" { | 72 extern "C" { |
75 #endif | 73 #endif |
76 | 74 |
77 /* This should be a hidden type, but EVP requires that the size be known */ | 75 /* This should be a hidden type, but EVP requires that the size be known */ |
78 struct aes_key_st { | 76 struct aes_key_st { |
79 #ifdef AES_LONG | 77 #ifdef AES_LONG |
80 unsigned long rd_key[4 *(AES_MAXNR + 1)]; | 78 unsigned long rd_key[4 *(AES_MAXNR + 1)]; |
81 #else | 79 #else |
82 unsigned int rd_key[4 *(AES_MAXNR + 1)]; | 80 unsigned int rd_key[4 *(AES_MAXNR + 1)]; |
(...skipping 10 matching lines...) Expand all Loading... |
93 AES_KEY *key); | 91 AES_KEY *key); |
94 | 92 |
95 void AES_encrypt(const unsigned char *in, unsigned char *out, | 93 void AES_encrypt(const unsigned char *in, unsigned char *out, |
96 const AES_KEY *key); | 94 const AES_KEY *key); |
97 void AES_decrypt(const unsigned char *in, unsigned char *out, | 95 void AES_decrypt(const unsigned char *in, unsigned char *out, |
98 const AES_KEY *key); | 96 const AES_KEY *key); |
99 | 97 |
100 void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, | 98 void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, |
101 const AES_KEY *key, const int enc); | 99 const AES_KEY *key, const int enc); |
102 void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, | 100 void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, |
103 » const unsigned long length, const AES_KEY *key, | 101 » size_t length, const AES_KEY *key, |
104 unsigned char *ivec, const int enc); | 102 unsigned char *ivec, const int enc); |
105 void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, | 103 void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, |
106 » const unsigned long length, const AES_KEY *key, | 104 » size_t length, const AES_KEY *key, |
107 unsigned char *ivec, int *num, const int enc); | 105 unsigned char *ivec, int *num, const int enc); |
108 void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, | 106 void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, |
109 » const unsigned long length, const AES_KEY *key, | 107 » size_t length, const AES_KEY *key, |
110 unsigned char *ivec, int *num, const int enc); | 108 unsigned char *ivec, int *num, const int enc); |
111 void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, | 109 void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, |
112 » const unsigned long length, const AES_KEY *key, | 110 » size_t length, const AES_KEY *key, |
113 unsigned char *ivec, int *num, const int enc); | 111 unsigned char *ivec, int *num, const int enc); |
114 void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out, | |
115 const int nbits,const AES_KEY *key, | |
116 unsigned char *ivec,const int enc); | |
117 void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, | 112 void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, |
118 » const unsigned long length, const AES_KEY *key, | 113 » size_t length, const AES_KEY *key, |
119 unsigned char *ivec, int *num); | 114 unsigned char *ivec, int *num); |
120 void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, | 115 void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, |
121 » const unsigned long length, const AES_KEY *key, | 116 » size_t length, const AES_KEY *key, |
122 unsigned char ivec[AES_BLOCK_SIZE], | 117 unsigned char ivec[AES_BLOCK_SIZE], |
123 unsigned char ecount_buf[AES_BLOCK_SIZE], | 118 unsigned char ecount_buf[AES_BLOCK_SIZE], |
124 unsigned int *num); | 119 unsigned int *num); |
125 | |
126 /* For IGE, see also http://www.links.org/files/openssl-ige.pdf */ | |
127 /* NB: the IV is _two_ blocks long */ | 120 /* NB: the IV is _two_ blocks long */ |
128 void AES_ige_encrypt(const unsigned char *in, unsigned char *out, | 121 void AES_ige_encrypt(const unsigned char *in, unsigned char *out, |
129 » » const unsigned long length, const AES_KEY *key, | 122 » » size_t length, const AES_KEY *key, |
130 unsigned char *ivec, const int enc); | 123 unsigned char *ivec, const int enc); |
131 /* NB: the IV is _four_ blocks long */ | 124 /* NB: the IV is _four_ blocks long */ |
132 void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, | 125 void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, |
133 » » » const unsigned long length, const AES_KEY *key, | 126 » » » size_t length, const AES_KEY *key, |
134 const AES_KEY *key2, const unsigned char *ivec, | 127 const AES_KEY *key2, const unsigned char *ivec, |
135 const int enc); | 128 const int enc); |
136 | 129 |
137 int AES_wrap_key(AES_KEY *key, const unsigned char *iv, | 130 int AES_wrap_key(AES_KEY *key, const unsigned char *iv, |
138 unsigned char *out, | 131 unsigned char *out, |
139 const unsigned char *in, unsigned int inlen); | 132 const unsigned char *in, unsigned int inlen); |
140 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, | 133 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, |
141 unsigned char *out, | 134 unsigned char *out, |
142 const unsigned char *in, unsigned int inlen); | 135 const unsigned char *in, unsigned int inlen); |
143 | 136 |
| 137 |
144 #ifdef __cplusplus | 138 #ifdef __cplusplus |
145 } | 139 } |
146 #endif | 140 #endif |
147 | 141 |
148 #endif /* !HEADER_AES_H */ | 142 #endif /* !HEADER_AES_H */ |
OLD | NEW |