/src/liboqs/src/common/pqclean_shims/aes.h
Line | Count | Source (jump to first uncovered line) |
1 | | // SPDX-License-Identifier: MIT |
2 | | |
3 | | #ifndef AES_H |
4 | | #define AES_H |
5 | | |
6 | | #include <stdint.h> |
7 | | #include <stdlib.h> |
8 | | |
9 | | #include <oqs/aes.h> |
10 | | |
11 | | #define AES256_KEYBYTES 32 |
12 | | #define AESCTR_NONCEBYTES 12 |
13 | | #define AES_BLOCKBYTES 16 |
14 | | |
15 | | typedef void *aes128ctx; |
16 | | typedef void *aes256ctx; |
17 | | |
18 | | #define aes256_ecb_keyexp(r, key) OQS_AES256_ECB_load_schedule((key), (r)) |
19 | | #define aes256_ecb(out, in, nblocks, ctx) OQS_AES256_ECB_enc_sch((in), (nblocks) * AES_BLOCKBYTES, *(ctx), (out)) |
20 | | #define aes256_ctr_keyexp(r, key) OQS_AES256_CTR_inc_init((key), (r)) |
21 | | #define aes256_ctr(out, outlen, iv, ctx) OQS_AES256_CTR_inc_stream_iv((iv), AESCTR_NONCEBYTES, *(ctx), (out), (outlen)) |
22 | | #define aes256_ctx_release(ctx) OQS_AES256_free_schedule(*(ctx)) |
23 | | |
24 | | #define aes256ctr_squeezeblocks(out, outlen, state) OQS_AES256_CTR_inc_stream_blks(*state, out, 4*outlen) |
25 | | #define aes256ctr_squeezeblocks_u64(out, outlen, iv, ctx) OQS_AES256_CTR_inc_stream_ivu64_blks((iv), *(ctx), (out), (4*outlen)) |
26 | | #define aes256ctr_init_key(state, key) OQS_AES256_CTR_inc_init(key, state) |
27 | | #define aes256ctr_init_iv(state, nonce) OQS_AES256_CTR_inc_iv(nonce, 12, *state) |
28 | | #define aes256ctr_init_iv_u64(state, nonce) OQS_AES256_CTR_inc_ivu64(nonce, *state) |
29 | | |
30 | 0 | static inline void aes256ctr_init(void **_schedule, const uint8_t *key, const uint8_t *nonce) { |
31 | 0 | OQS_AES256_CTR_inc_init(key, _schedule); |
32 | 0 | OQS_AES256_CTR_inc_iv(nonce, 12, *_schedule); |
33 | 0 | } Unexecuted instantiation: mayo.c:aes256ctr_init Unexecuted instantiation: snova_aes.c:aes256ctr_init |
34 | | |
35 | 0 | static inline void aes256ctr_init_u64(void **_schedule, const uint8_t *key, uint64_t nonce) { |
36 | 0 | OQS_AES256_CTR_inc_init(key, _schedule); |
37 | 0 | OQS_AES256_CTR_inc_ivu64(nonce, *_schedule); |
38 | 0 | } Unexecuted instantiation: mayo.c:aes256ctr_init_u64 Unexecuted instantiation: snova_aes.c:aes256ctr_init_u64 |
39 | | |
40 | 0 | static inline void aes256ctr_prf(uint8_t *out, size_t outlen, const uint8_t key[32], uint8_t nonce[12]) { |
41 | 0 | aes256ctx state; |
42 | 0 | OQS_AES256_CTR_inc_init(key, &state); |
43 | 0 | OQS_AES256_CTR_inc_stream_iv(nonce, 12, state, out, outlen); |
44 | 0 | OQS_AES256_free_schedule(state); |
45 | 0 | } Unexecuted instantiation: mayo.c:aes256ctr_prf Unexecuted instantiation: snova_aes.c:aes256ctr_prf |
46 | | |
47 | 24 | static inline void aes128ctr_prf(uint8_t *out, size_t outlen, const uint8_t key[16], uint8_t nonce[12]) { |
48 | 24 | aes128ctx state; |
49 | 24 | OQS_AES128_CTR_inc_init(key, &state); |
50 | 24 | OQS_AES128_CTR_inc_stream_iv(nonce, 12, state, out, outlen); |
51 | 24 | OQS_AES128_free_schedule(state); |
52 | 24 | } Line | Count | Source | 47 | 24 | static inline void aes128ctr_prf(uint8_t *out, size_t outlen, const uint8_t key[16], uint8_t nonce[12]) { | 48 | 24 | aes128ctx state; | 49 | 24 | OQS_AES128_CTR_inc_init(key, &state); | 50 | 24 | OQS_AES128_CTR_inc_stream_iv(nonce, 12, state, out, outlen); | 51 | 24 | OQS_AES128_free_schedule(state); | 52 | 24 | } |
Unexecuted instantiation: snova_aes.c:aes128ctr_prf |
53 | | |
54 | | |
55 | | #endif |