XenevaOS
Loading...
Searching...
No Matches
XenevaOS
Ports
mbedtls
library
aesce.h
Go to the documentation of this file.
1
10
/*
11
* Copyright The Mbed TLS Contributors
12
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
13
*/
14
#ifndef MBEDTLS_AESCE_H
15
#define MBEDTLS_AESCE_H
16
17
#include "
mbedtls/build_info.h
"
18
#include "
common.h
"
19
20
#include "
mbedtls/aes.h
"
21
22
23
#if defined(MBEDTLS_AESCE_C) \
24
&& defined(MBEDTLS_ARCH_IS_ARMV8_A) && defined(MBEDTLS_HAVE_NEON_INTRINSICS) \
25
&& (defined(MBEDTLS_COMPILER_IS_GCC) || defined(__clang__) || defined(MSC_VER))
26
27
/* MBEDTLS_AESCE_HAVE_CODE is defined if we have a suitable target platform, and a
28
* potentially suitable compiler (compiler version & flags are not checked when defining
29
* this). */
30
#define MBEDTLS_AESCE_HAVE_CODE
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
35
36
#if defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
37
38
extern
signed
char
mbedtls_aesce_has_support_result;
39
45
int
mbedtls_aesce_has_support_impl(
void
);
46
47
#define MBEDTLS_AESCE_HAS_SUPPORT() (mbedtls_aesce_has_support_result == -1 ? \
48
mbedtls_aesce_has_support_impl() : \
49
mbedtls_aesce_has_support_result)
50
51
#else
/* defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY) */
52
53
/* If we are not on Linux, we can't detect support so assume that it's supported.
54
* Similarly, assume support if MBEDTLS_AES_USE_HARDWARE_ONLY is set.
55
*/
56
#define MBEDTLS_AESCE_HAS_SUPPORT() 1
57
58
#endif
/* defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY) */
59
73
int
mbedtls_aesce_crypt_ecb(
mbedtls_aes_context
*ctx,
74
int
mode
,
75
const
unsigned
char
input
[16],
76
unsigned
char
output[16]);
77
91
void
mbedtls_aesce_gcm_mult(
unsigned
char
c[16],
92
const
unsigned
char
a
[16],
93
const
unsigned
char
b
[16]);
94
95
96
#if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
105
void
mbedtls_aesce_inverse_key(
unsigned
char
*invkey,
106
const
unsigned
char
*fwdkey,
107
int
nr);
108
#endif
/* !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
109
119
int
mbedtls_aesce_setkey_enc(
unsigned
char
*rk,
120
const
unsigned
char
*key,
121
size_t
bits);
122
123
#ifdef __cplusplus
124
}
125
#endif
126
127
#else
128
129
#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY) && defined(MBEDTLS_ARCH_IS_ARMV8_A)
130
#error "AES hardware acceleration not supported on this platform / compiler"
131
#endif
132
133
#endif
/* MBEDTLS_AESCE_C && MBEDTLS_ARCH_IS_ARMV8_A && MBEDTLS_HAVE_NEON_INTRINSICS &&
134
(MBEDTLS_COMPILER_IS_GCC || __clang__ || MSC_VER) */
135
136
#endif
/* MBEDTLS_AESCE_H */
a
size_t a
Definition
main.cpp:156
b
size_t b
Definition
main.cpp:156
aes.h
This file contains AES definitions and functions.
common.h
Utility macros for internal use in the library.
build_info.h
Build-time configuration info.
mbedtls_aes_context
The AES context-type definition.
Definition
aes.h:63
mode
#define mode(x)
input
struct VirtioInputEvent * input
Definition
virtiokbd.c:46
Generated by
1.9.8