85 void *
ctx,
const void *
src,
void *dst,
102 "movdqu %%xmm0, %1\n\t"
104 "movdqu %3, %%xmm0\n\t"
105 "pxor (%0), %%xmm0\n\t"
113 "aesenc 0x10(%0), %%xmm0\n\t"
114 "aesenc 0x20(%0), %%xmm0\n\t"
115 "lea 0x20(%0), %0\n\t"
118 "aesenc 0x10(%0), %%xmm0\n\t"
119 "aesenc 0x20(%0), %%xmm0\n\t"
120 "lea 0x20(%0), %0\n\t"
123 "aesenc 0x10(%0), %%xmm0\n\t"
124 "aesenc 0x20(%0), %%xmm0\n\t"
125 "aesenc 0x30(%0), %%xmm0\n\t"
126 "aesenc 0x40(%0), %%xmm0\n\t"
127 "aesenc 0x50(%0), %%xmm0\n\t"
128 "aesenc 0x60(%0), %%xmm0\n\t"
129 "aesenc 0x70(%0), %%xmm0\n\t"
130 "aesenc 0x80(%0), %%xmm0\n\t"
131 "aesenc 0x90(%0), %%xmm0\n\t"
133 "aesenclast 0xa0(%0), %%xmm0\n\t"
134 "movdqu %%xmm0, %2\n\t"
136 "movdqu %1, %%xmm0\n\t"
137 :
"+r" (
key ),
"=m" ( save ),
"=m" ( *out )
151 void *
ctx,
const void *
src,
void *dst,
168 "movdqu %%xmm0, %1\n\t"
170 "movdqu %3, %%xmm0\n\t"
171 "pxor (%0), %%xmm0\n\t"
179 "aesdec 0x10(%0), %%xmm0\n\t"
180 "aesdec 0x20(%0), %%xmm0\n\t"
181 "lea 0x20(%0), %0\n\t"
184 "aesdec 0x10(%0), %%xmm0\n\t"
185 "aesdec 0x20(%0), %%xmm0\n\t"
186 "lea 0x20(%0), %0\n\t"
189 "aesdec 0x10(%0), %%xmm0\n\t"
190 "aesdec 0x20(%0), %%xmm0\n\t"
191 "aesdec 0x30(%0), %%xmm0\n\t"
192 "aesdec 0x40(%0), %%xmm0\n\t"
193 "aesdec 0x50(%0), %%xmm0\n\t"
194 "aesdec 0x60(%0), %%xmm0\n\t"
195 "aesdec 0x70(%0), %%xmm0\n\t"
196 "aesdec 0x80(%0), %%xmm0\n\t"
197 "aesdec 0x90(%0), %%xmm0\n\t"
199 "aesdeclast 0xa0(%0), %%xmm0\n\t"
200 "movdqu %%xmm0, %2\n\t"
202 "movdqu %1, %%xmm0\n\t"
203 :
"+r" (
key ),
"=m" ( save ),
"=m" ( *out )
struct golan_eq_context ctx
union @162305117151260234136356364136041353210355154177 key
struct cipher_algorithm aes_algorithm
Basic AES algorithm.
void aes_accelerate(void)
Enable hardware acceleration (if supported).
static void aesni_decrypt(struct cipher_algorithm *cipher __unused, void *ctx, const void *src, void *dst, size_t len)
Decrypt data.
static void aesni_encrypt(struct cipher_algorithm *cipher __unused, void *ctx, const void *src, void *dst, size_t len)
Encrypt data.
#define assert(condition)
Assert a condition at run-time.
void x86_features(struct x86_features *features)
Get x86 CPU features.
x86 CPU feature detection
#define CPUID_FEATURES_INTEL_ECX_AESNI
AES-NI instructions are supported.
uint32_t features
Supported features.
#define __unused
Declare a variable or data structure as unused.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
static struct aes_context * aes_context(void *ctx)
Align AES context.
struct aes_round_keys decrypt
Decryption keys.
uint8_t rounds
Number of rounds.
struct aes_round_keys encrypt
Encryption keys.
union aes_matrix key[AES_MAX_ROUNDS]
Round keys.