]>
Commit | Line | Data |
---|---|---|
a4397635 AB |
1 | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | /* | |
3 | * Copyright (C) 2019 Linaro Ltd <ard.biesheuvel@linaro.org> | |
4 | */ | |
5 | ||
6 | #include <asm/cpufeature.h> | |
7 | #include <asm/neon.h> | |
8 | ||
9 | #include "aegis.h" | |
10 | ||
11 | void crypto_aegis128_update_neon(void *state, const void *msg); | |
12 | void crypto_aegis128_encrypt_chunk_neon(void *state, void *dst, const void *src, | |
13 | unsigned int size); | |
14 | void crypto_aegis128_decrypt_chunk_neon(void *state, void *dst, const void *src, | |
15 | unsigned int size); | |
16 | ||
17 | bool crypto_aegis128_have_simd(void) | |
18 | { | |
19 | return cpu_have_feature(cpu_feature(AES)); | |
20 | } | |
21 | ||
22 | void crypto_aegis128_update_simd(union aegis_block *state, const void *msg) | |
23 | { | |
24 | kernel_neon_begin(); | |
25 | crypto_aegis128_update_neon(state, msg); | |
26 | kernel_neon_end(); | |
27 | } | |
28 | ||
29 | void crypto_aegis128_encrypt_chunk_simd(union aegis_block *state, u8 *dst, | |
30 | const u8 *src, unsigned int size) | |
31 | { | |
32 | kernel_neon_begin(); | |
33 | crypto_aegis128_encrypt_chunk_neon(state, dst, src, size); | |
34 | kernel_neon_end(); | |
35 | } | |
36 | ||
37 | void crypto_aegis128_decrypt_chunk_simd(union aegis_block *state, u8 *dst, | |
38 | const u8 *src, unsigned int size) | |
39 | { | |
40 | kernel_neon_begin(); | |
41 | crypto_aegis128_decrypt_chunk_neon(state, dst, src, size); | |
42 | kernel_neon_end(); | |
43 | } |