]>
Commit | Line | Data |
---|---|---|
9f95a23c | 1 | /******************************************************************************* |
f67539c2 | 2 | Copyright (c) 2018-2019, Intel Corporation |
9f95a23c TL |
3 | |
4 | Redistribution and use in source and binary forms, with or without | |
5 | modification, are permitted provided that the following conditions are met: | |
6 | ||
7 | * Redistributions of source code must retain the above copyright notice, | |
8 | this list of conditions and the following disclaimer. | |
9 | * Redistributions in binary form must reproduce the above copyright | |
10 | notice, this list of conditions and the following disclaimer in the | |
11 | documentation and/or other materials provided with the distribution. | |
12 | * Neither the name of Intel Corporation nor the names of its contributors | |
13 | may be used to endorse or promote products derived from this software | |
14 | without specific prior written permission. | |
15 | ||
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE | |
20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |
23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |
24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
26 | *******************************************************************************/ | |
27 | ||
28 | #include "intel-ipsec-mb.h" | |
29 | ||
30 | #ifndef NO_GCM | |
31 | ||
32 | #ifndef _GCM_H_ | |
33 | #define _GCM_H_ | |
34 | ||
35 | /* | |
36 | * AVX512+VAES+VPCLMULQDQ GCM API | |
37 | * - intentionally this is not exposed in intel-ipsec-mb.h | |
38 | * - available through IMB_GCM_xxx() macros from intel-ipsec-mb.h | |
39 | */ | |
40 | IMB_DLL_EXPORT void | |
41 | aes_gcm_enc_128_vaes_avx512(const struct gcm_key_data *key_data, | |
42 | struct gcm_context_data *context_data, | |
43 | uint8_t *out, uint8_t const *in, uint64_t len, | |
44 | const uint8_t *iv, | |
45 | uint8_t const *aad, uint64_t aad_len, | |
46 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
47 | IMB_DLL_EXPORT void | |
48 | aes_gcm_enc_192_vaes_avx512(const struct gcm_key_data *key_data, | |
49 | struct gcm_context_data *context_data, | |
50 | uint8_t *out, uint8_t const *in, uint64_t len, | |
51 | const uint8_t *iv, | |
52 | uint8_t const *aad, uint64_t aad_len, | |
53 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
54 | IMB_DLL_EXPORT void | |
55 | aes_gcm_enc_256_vaes_avx512(const struct gcm_key_data *key_data, | |
56 | struct gcm_context_data *context_data, | |
57 | uint8_t *out, uint8_t const *in, uint64_t len, | |
58 | const uint8_t *iv, | |
59 | uint8_t const *aad, uint64_t aad_len, | |
60 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
61 | IMB_DLL_EXPORT void | |
62 | aes_gcm_dec_128_vaes_avx512(const struct gcm_key_data *key_data, | |
63 | struct gcm_context_data *context_data, | |
64 | uint8_t *out, uint8_t const *in, uint64_t len, | |
65 | const uint8_t *iv, | |
66 | uint8_t const *aad, uint64_t aad_len, | |
67 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
68 | IMB_DLL_EXPORT void | |
69 | aes_gcm_dec_192_vaes_avx512(const struct gcm_key_data *key_data, | |
70 | struct gcm_context_data *context_data, | |
71 | uint8_t *out, uint8_t const *in, uint64_t len, | |
72 | const uint8_t *iv, | |
73 | uint8_t const *aad, uint64_t aad_len, | |
74 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
75 | IMB_DLL_EXPORT void | |
76 | aes_gcm_dec_256_vaes_avx512(const struct gcm_key_data *key_data, | |
77 | struct gcm_context_data *context_data, | |
78 | uint8_t *out, uint8_t const *in, uint64_t len, | |
79 | const uint8_t *iv, | |
80 | uint8_t const *aad, uint64_t aad_len, | |
81 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
82 | ||
83 | IMB_DLL_EXPORT void | |
84 | aes_gcm_init_128_vaes_avx512(const struct gcm_key_data *key_data, | |
85 | struct gcm_context_data *context_data, | |
86 | const uint8_t *iv, uint8_t const *aad, | |
87 | uint64_t aad_len); | |
88 | IMB_DLL_EXPORT void | |
89 | aes_gcm_init_192_vaes_avx512(const struct gcm_key_data *key_data, | |
90 | struct gcm_context_data *context_data, | |
91 | const uint8_t *iv, uint8_t const *aad, | |
92 | uint64_t aad_len); | |
93 | IMB_DLL_EXPORT void | |
94 | aes_gcm_init_256_vaes_avx512(const struct gcm_key_data *key_data, | |
95 | struct gcm_context_data *context_data, | |
96 | const uint8_t *iv, uint8_t const *aad, | |
97 | uint64_t aad_len); | |
98 | IMB_DLL_EXPORT void | |
99 | aes_gcm_enc_128_update_vaes_avx512(const struct gcm_key_data *key_data, | |
100 | struct gcm_context_data *context_data, | |
101 | uint8_t *out, const uint8_t *in, | |
102 | uint64_t len); | |
103 | IMB_DLL_EXPORT void | |
104 | aes_gcm_enc_192_update_vaes_avx512(const struct gcm_key_data *key_data, | |
105 | struct gcm_context_data *context_data, | |
106 | uint8_t *out, const uint8_t *in, | |
107 | uint64_t len); | |
108 | IMB_DLL_EXPORT void | |
109 | aes_gcm_enc_256_update_vaes_avx512(const struct gcm_key_data *key_data, | |
110 | struct gcm_context_data *context_data, | |
111 | uint8_t *out, const uint8_t *in, | |
112 | uint64_t len); | |
113 | IMB_DLL_EXPORT void | |
114 | aes_gcm_dec_128_update_vaes_avx512(const struct gcm_key_data *key_data, | |
115 | struct gcm_context_data *context_data, | |
116 | uint8_t *out, const uint8_t *in, | |
117 | uint64_t len); | |
118 | IMB_DLL_EXPORT void | |
119 | aes_gcm_dec_192_update_vaes_avx512(const struct gcm_key_data *key_data, | |
120 | struct gcm_context_data *context_data, | |
121 | uint8_t *out, const uint8_t *in, | |
122 | uint64_t len); | |
123 | IMB_DLL_EXPORT void | |
124 | aes_gcm_dec_256_update_vaes_avx512(const struct gcm_key_data *key_data, | |
125 | struct gcm_context_data *context_data, | |
126 | uint8_t *out, const uint8_t *in, | |
127 | uint64_t len); | |
128 | IMB_DLL_EXPORT void | |
129 | aes_gcm_enc_128_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
130 | struct gcm_context_data *context_data, | |
131 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
132 | IMB_DLL_EXPORT void | |
133 | aes_gcm_enc_192_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
134 | struct gcm_context_data *context_data, | |
135 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
136 | IMB_DLL_EXPORT void | |
137 | aes_gcm_enc_256_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
138 | struct gcm_context_data *context_data, | |
139 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
140 | IMB_DLL_EXPORT void | |
141 | aes_gcm_dec_128_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
142 | struct gcm_context_data *context_data, | |
143 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
144 | IMB_DLL_EXPORT void | |
145 | aes_gcm_dec_192_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
146 | struct gcm_context_data *context_data, | |
147 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
148 | IMB_DLL_EXPORT void | |
149 | aes_gcm_dec_256_finalize_vaes_avx512(const struct gcm_key_data *key_data, | |
150 | struct gcm_context_data *context_data, | |
151 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
152 | IMB_DLL_EXPORT void | |
153 | aes_gcm_precomp_128_vaes_avx512(struct gcm_key_data *key_data); | |
154 | IMB_DLL_EXPORT void | |
155 | aes_gcm_precomp_192_vaes_avx512(struct gcm_key_data *key_data); | |
156 | IMB_DLL_EXPORT void | |
157 | aes_gcm_precomp_256_vaes_avx512(struct gcm_key_data *key_data); | |
158 | ||
159 | IMB_DLL_EXPORT void | |
160 | aes_gcm_pre_128_vaes_avx512(const void *key, struct gcm_key_data *key_data); | |
161 | IMB_DLL_EXPORT void | |
162 | aes_gcm_pre_192_vaes_avx512(const void *key, struct gcm_key_data *key_data); | |
163 | IMB_DLL_EXPORT void | |
164 | aes_gcm_pre_256_vaes_avx512(const void *key, struct gcm_key_data *key_data); | |
165 | ||
9f95a23c TL |
166 | /* |
167 | * AVX512 GCM API | |
168 | * - intentionally this is not exposed in intel-ipsec-mb.h | |
169 | * - available through IMB_GCM_xxx() macros from intel-ipsec-mb.h | |
170 | */ | |
171 | IMB_DLL_EXPORT void | |
172 | aes_gcm_enc_128_avx512(const struct gcm_key_data *key_data, | |
173 | struct gcm_context_data *context_data, | |
174 | uint8_t *out, uint8_t const *in, uint64_t len, | |
175 | const uint8_t *iv, | |
176 | uint8_t const *aad, uint64_t aad_len, | |
177 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
178 | IMB_DLL_EXPORT void | |
179 | aes_gcm_enc_192_avx512(const struct gcm_key_data *key_data, | |
180 | struct gcm_context_data *context_data, | |
181 | uint8_t *out, uint8_t const *in, uint64_t len, | |
182 | const uint8_t *iv, | |
183 | uint8_t const *aad, uint64_t aad_len, | |
184 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
185 | IMB_DLL_EXPORT void | |
186 | aes_gcm_enc_256_avx512(const struct gcm_key_data *key_data, | |
187 | struct gcm_context_data *context_data, | |
188 | uint8_t *out, uint8_t const *in, uint64_t len, | |
189 | const uint8_t *iv, | |
190 | uint8_t const *aad, uint64_t aad_len, | |
191 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
192 | IMB_DLL_EXPORT void | |
193 | aes_gcm_dec_128_avx512(const struct gcm_key_data *key_data, | |
194 | struct gcm_context_data *context_data, | |
195 | uint8_t *out, uint8_t const *in, uint64_t len, | |
196 | const uint8_t *iv, | |
197 | uint8_t const *aad, uint64_t aad_len, | |
198 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
199 | IMB_DLL_EXPORT void | |
200 | aes_gcm_dec_192_avx512(const struct gcm_key_data *key_data, | |
201 | struct gcm_context_data *context_data, | |
202 | uint8_t *out, uint8_t const *in, uint64_t len, | |
203 | const uint8_t *iv, | |
204 | uint8_t const *aad, uint64_t aad_len, | |
205 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
206 | IMB_DLL_EXPORT void | |
207 | aes_gcm_dec_256_avx512(const struct gcm_key_data *key_data, | |
208 | struct gcm_context_data *context_data, | |
209 | uint8_t *out, uint8_t const *in, uint64_t len, | |
210 | const uint8_t *iv, | |
211 | uint8_t const *aad, uint64_t aad_len, | |
212 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
213 | ||
214 | IMB_DLL_EXPORT void | |
215 | aes_gcm_init_128_avx512(const struct gcm_key_data *key_data, | |
216 | struct gcm_context_data *context_data, | |
217 | const uint8_t *iv, uint8_t const *aad, | |
218 | uint64_t aad_len); | |
219 | IMB_DLL_EXPORT void | |
220 | aes_gcm_init_192_avx512(const struct gcm_key_data *key_data, | |
221 | struct gcm_context_data *context_data, | |
222 | const uint8_t *iv, uint8_t const *aad, | |
223 | uint64_t aad_len); | |
224 | IMB_DLL_EXPORT void | |
225 | aes_gcm_init_256_avx512(const struct gcm_key_data *key_data, | |
226 | struct gcm_context_data *context_data, | |
227 | const uint8_t *iv, uint8_t const *aad, | |
228 | uint64_t aad_len); | |
229 | IMB_DLL_EXPORT void | |
230 | aes_gcm_enc_128_update_avx512(const struct gcm_key_data *key_data, | |
231 | struct gcm_context_data *context_data, | |
232 | uint8_t *out, const uint8_t *in, | |
233 | uint64_t len); | |
234 | IMB_DLL_EXPORT void | |
235 | aes_gcm_enc_192_update_avx512(const struct gcm_key_data *key_data, | |
236 | struct gcm_context_data *context_data, | |
237 | uint8_t *out, const uint8_t *in, | |
238 | uint64_t len); | |
239 | IMB_DLL_EXPORT void | |
240 | aes_gcm_enc_256_update_avx512(const struct gcm_key_data *key_data, | |
241 | struct gcm_context_data *context_data, | |
242 | uint8_t *out, const uint8_t *in, | |
243 | uint64_t len); | |
244 | IMB_DLL_EXPORT void | |
245 | aes_gcm_dec_128_update_avx512(const struct gcm_key_data *key_data, | |
246 | struct gcm_context_data *context_data, | |
247 | uint8_t *out, const uint8_t *in, | |
248 | uint64_t len); | |
249 | IMB_DLL_EXPORT void | |
250 | aes_gcm_dec_192_update_avx512(const struct gcm_key_data *key_data, | |
251 | struct gcm_context_data *context_data, | |
252 | uint8_t *out, const uint8_t *in, | |
253 | uint64_t len); | |
254 | IMB_DLL_EXPORT void | |
255 | aes_gcm_dec_256_update_avx512(const struct gcm_key_data *key_data, | |
256 | struct gcm_context_data *context_data, | |
257 | uint8_t *out, const uint8_t *in, | |
258 | uint64_t len); | |
259 | IMB_DLL_EXPORT void | |
260 | aes_gcm_enc_128_finalize_avx512(const struct gcm_key_data *key_data, | |
261 | struct gcm_context_data *context_data, | |
262 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
263 | IMB_DLL_EXPORT void | |
264 | aes_gcm_enc_192_finalize_avx512(const struct gcm_key_data *key_data, | |
265 | struct gcm_context_data *context_data, | |
266 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
267 | IMB_DLL_EXPORT void | |
268 | aes_gcm_enc_256_finalize_avx512(const struct gcm_key_data *key_data, | |
269 | struct gcm_context_data *context_data, | |
270 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
271 | IMB_DLL_EXPORT void | |
272 | aes_gcm_dec_128_finalize_avx512(const struct gcm_key_data *key_data, | |
273 | struct gcm_context_data *context_data, | |
274 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
275 | IMB_DLL_EXPORT void | |
276 | aes_gcm_dec_192_finalize_avx512(const struct gcm_key_data *key_data, | |
277 | struct gcm_context_data *context_data, | |
278 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
279 | IMB_DLL_EXPORT void | |
280 | aes_gcm_dec_256_finalize_avx512(const struct gcm_key_data *key_data, | |
281 | struct gcm_context_data *context_data, | |
282 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
283 | IMB_DLL_EXPORT void | |
284 | aes_gcm_precomp_128_avx512(struct gcm_key_data *key_data); | |
285 | IMB_DLL_EXPORT void | |
286 | aes_gcm_precomp_192_avx512(struct gcm_key_data *key_data); | |
287 | IMB_DLL_EXPORT void | |
288 | aes_gcm_precomp_256_avx512(struct gcm_key_data *key_data); | |
289 | ||
290 | IMB_DLL_EXPORT void | |
291 | aes_gcm_pre_128_avx512(const void *key, struct gcm_key_data *key_data); | |
292 | IMB_DLL_EXPORT void | |
293 | aes_gcm_pre_192_avx512(const void *key, struct gcm_key_data *key_data); | |
294 | IMB_DLL_EXPORT void | |
295 | aes_gcm_pre_256_avx512(const void *key, struct gcm_key_data *key_data); | |
296 | ||
297 | /* | |
298 | * AESNI emulation GCM API (based on SSE acrhitecture) | |
299 | * - intentionally this is not exposed in intel-ipsec-mb.h | |
300 | * - available through IMB_GCM_xxx() macros from intel-ipsec-mb.h | |
301 | */ | |
302 | IMB_DLL_EXPORT void | |
303 | aes_gcm_enc_128_sse_no_aesni(const struct gcm_key_data *key_data, | |
304 | struct gcm_context_data *context_data, | |
305 | uint8_t *out, uint8_t const *in, uint64_t len, | |
306 | const uint8_t *iv, uint8_t const *aad, | |
307 | uint64_t aad_len, uint8_t *auth_tag, | |
308 | uint64_t auth_tag_len); | |
309 | IMB_DLL_EXPORT void | |
310 | aes_gcm_enc_192_sse_no_aesni(const struct gcm_key_data *key_data, | |
311 | struct gcm_context_data *context_data, | |
312 | uint8_t *out, uint8_t const *in, uint64_t len, | |
313 | const uint8_t *iv, uint8_t const *aad, | |
314 | uint64_t aad_len, uint8_t *auth_tag, | |
315 | uint64_t auth_tag_len); | |
316 | IMB_DLL_EXPORT void | |
317 | aes_gcm_enc_256_sse_no_aesni(const struct gcm_key_data *key_data, | |
318 | struct gcm_context_data *context_data, | |
319 | uint8_t *out, uint8_t const *in, uint64_t len, | |
320 | const uint8_t *iv, | |
321 | uint8_t const *aad, uint64_t aad_len, | |
322 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
323 | IMB_DLL_EXPORT void | |
324 | aes_gcm_dec_128_sse_no_aesni(const struct gcm_key_data *key_data, | |
325 | struct gcm_context_data *context_data, | |
326 | uint8_t *out, uint8_t const *in, uint64_t len, | |
327 | const uint8_t *iv, uint8_t const *aad, | |
328 | uint64_t aad_len, uint8_t *auth_tag, | |
329 | uint64_t auth_tag_len); | |
330 | IMB_DLL_EXPORT void | |
331 | aes_gcm_dec_192_sse_no_aesni(const struct gcm_key_data *key_data, | |
332 | struct gcm_context_data *context_data, | |
333 | uint8_t *out, uint8_t const *in, uint64_t len, | |
334 | const uint8_t *iv, uint8_t const *aad, | |
335 | uint64_t aad_len, uint8_t *auth_tag, | |
336 | uint64_t auth_tag_len); | |
337 | IMB_DLL_EXPORT void | |
338 | aes_gcm_dec_256_sse_no_aesni(const struct gcm_key_data *key_data, | |
339 | struct gcm_context_data *context_data, | |
340 | uint8_t *out, uint8_t const *in, uint64_t len, | |
341 | const uint8_t *iv, uint8_t const *aad, | |
342 | uint64_t aad_len, uint8_t *auth_tag, | |
343 | uint64_t auth_tag_len); | |
344 | IMB_DLL_EXPORT void | |
345 | aes_gcm_init_128_sse_no_aesni(const struct gcm_key_data *key_data, | |
346 | struct gcm_context_data *context_data, | |
347 | const uint8_t *iv, uint8_t const *aad, | |
348 | uint64_t aad_len); | |
349 | IMB_DLL_EXPORT void | |
350 | aes_gcm_init_192_sse_no_aesni(const struct gcm_key_data *key_data, | |
351 | struct gcm_context_data *context_data, | |
352 | const uint8_t *iv, uint8_t const *aad, | |
353 | uint64_t aad_len); | |
354 | IMB_DLL_EXPORT void | |
355 | aes_gcm_init_256_sse_no_aesni(const struct gcm_key_data *key_data, | |
356 | struct gcm_context_data *context_data, | |
357 | const uint8_t *iv, uint8_t const *aad, | |
358 | uint64_t aad_len); | |
359 | IMB_DLL_EXPORT void | |
360 | aes_gcm_enc_128_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
361 | struct gcm_context_data *context_data, | |
362 | uint8_t *out, const uint8_t *in, | |
363 | uint64_t len); | |
364 | IMB_DLL_EXPORT void | |
365 | aes_gcm_enc_192_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
366 | struct gcm_context_data *context_data, | |
367 | uint8_t *out, const uint8_t *in, | |
368 | uint64_t len); | |
369 | IMB_DLL_EXPORT void | |
370 | aes_gcm_enc_256_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
371 | struct gcm_context_data *context_data, | |
372 | uint8_t *out, const uint8_t *in, | |
373 | uint64_t len); | |
374 | IMB_DLL_EXPORT void | |
375 | aes_gcm_dec_128_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
376 | struct gcm_context_data *context_data, | |
377 | uint8_t *out, const uint8_t *in, | |
378 | uint64_t len); | |
379 | IMB_DLL_EXPORT void | |
380 | aes_gcm_dec_192_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
381 | struct gcm_context_data *context_data, | |
382 | uint8_t *out, const uint8_t *in, | |
383 | uint64_t len); | |
384 | IMB_DLL_EXPORT void | |
385 | aes_gcm_dec_256_update_sse_no_aesni(const struct gcm_key_data *key_data, | |
386 | struct gcm_context_data *context_data, | |
387 | uint8_t *out, const uint8_t *in, | |
388 | uint64_t len); | |
389 | IMB_DLL_EXPORT void | |
390 | aes_gcm_enc_128_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
391 | struct gcm_context_data *context_data, | |
392 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
393 | IMB_DLL_EXPORT void | |
394 | aes_gcm_enc_192_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
395 | struct gcm_context_data *context_data, | |
396 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
397 | IMB_DLL_EXPORT void | |
398 | aes_gcm_enc_256_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
399 | struct gcm_context_data *context_data, | |
400 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
401 | IMB_DLL_EXPORT void | |
402 | aes_gcm_dec_128_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
403 | struct gcm_context_data *context_data, | |
404 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
405 | IMB_DLL_EXPORT void | |
406 | aes_gcm_dec_192_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
407 | struct gcm_context_data *context_data, | |
408 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
409 | IMB_DLL_EXPORT void | |
410 | aes_gcm_dec_256_finalize_sse_no_aesni(const struct gcm_key_data *key_data, | |
411 | struct gcm_context_data *context_data, | |
412 | uint8_t *auth_tag, uint64_t auth_tag_len); | |
413 | IMB_DLL_EXPORT void | |
414 | aes_gcm_precomp_128_sse_no_aesni(struct gcm_key_data *key_data); | |
415 | IMB_DLL_EXPORT void | |
416 | aes_gcm_precomp_192_sse_no_aesni(struct gcm_key_data *key_data); | |
417 | IMB_DLL_EXPORT void | |
418 | aes_gcm_precomp_256_sse_no_aesni(struct gcm_key_data *key_data); | |
419 | ||
420 | IMB_DLL_EXPORT void | |
421 | aes_gcm_pre_128_sse_no_aesni(const void *key, struct gcm_key_data *key_data); | |
422 | IMB_DLL_EXPORT void | |
423 | aes_gcm_pre_192_sse_no_aesni(const void *key, struct gcm_key_data *key_data); | |
424 | IMB_DLL_EXPORT void | |
425 | aes_gcm_pre_256_sse_no_aesni(const void *key, struct gcm_key_data *key_data); | |
426 | ||
427 | #endif /* _GCM_H_ */ | |
428 | #endif /* NO_GCM */ |