-
Notifications
You must be signed in to change notification settings - Fork 0
/
constants.h
103 lines (84 loc) · 4.04 KB
/
constants.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#ifndef CONSTANTS_H_
#define CONSTANTS_H_
#include <stdint.h>
#define ASCON_128_KEYBYTES 16
#define ASCON_128A_KEYBYTES 16
#define ASCON_80PQ_KEYBYTES 20
#define ASCON_128_RATE 8
#define ASCON_128A_RATE 16
#define ASCON_HASH_RATE 8
#define ASCON_PRF_IN_RATE 32
#define ASCON_PRFA_IN_RATE 40
#define ASCON_PRF_OUT_RATE 16
#define ASCON_128_PA_ROUNDS 12
#define ASCON_128_PB_ROUNDS 6
#define ASCON_128A_PA_ROUNDS 12
#define ASCON_128A_PB_ROUNDS 8
#define ASCON_HASH_PA_ROUNDS 12
#define ASCON_HASH_PB_ROUNDS 12
#define ASCON_HASHA_PA_ROUNDS 12
#define ASCON_HASHA_PB_ROUNDS 8
#define ASCON_PRF_PA_ROUNDS 12
#define ASCON_PRF_PB_ROUNDS 12
#define ASCON_PRFA_PA_ROUNDS 12
#define ASCON_PRFA_PB_ROUNDS 8
#define ASCON_128_IV \
(((uint64_t)(ASCON_128_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_128_RATE * 8) << 48) | \
((uint64_t)(ASCON_128_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_128_PB_ROUNDS) << 32))
#define ASCON_128A_IV \
(((uint64_t)(ASCON_128A_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_128A_RATE * 8) << 48) | \
((uint64_t)(ASCON_128A_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_128A_PB_ROUNDS) << 32))
#define ASCON_80PQ_IV \
(((uint64_t)(ASCON_80PQ_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_128_RATE * 8) << 48) | \
((uint64_t)(ASCON_128_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_128_PB_ROUNDS) << 32))
#define ASCON_HASH_IV \
(((uint64_t)(ASCON_HASH_RATE * 8) << 48) | \
((uint64_t)(ASCON_HASH_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_HASH_PA_ROUNDS - ASCON_HASH_PB_ROUNDS) << 32) | \
((uint64_t)(ASCON_HASH_BYTES * 8) << 0))
#define ASCON_HASHA_IV \
(((uint64_t)(ASCON_HASH_RATE * 8) << 48) | \
((uint64_t)(ASCON_HASHA_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_HASHA_PA_ROUNDS - ASCON_HASHA_PB_ROUNDS) << 32) | \
((uint64_t)(ASCON_HASH_BYTES * 8) << 0))
#define ASCON_XOF_IV \
(((uint64_t)(ASCON_HASH_RATE * 8) << 48) | \
((uint64_t)(ASCON_HASH_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_HASH_PA_ROUNDS - ASCON_HASH_PB_ROUNDS) << 32))
#define ASCON_XOFA_IV \
(((uint64_t)(ASCON_HASH_RATE * 8) << 48) | \
((uint64_t)(ASCON_HASHA_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_HASHA_PA_ROUNDS - ASCON_HASHA_PB_ROUNDS) << 32))
#define ASCON_MAC_IV \
(((uint64_t)(CRYPTO_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_PRF_OUT_RATE * 8) << 48) | \
((uint64_t)(0x80 | ASCON_PRF_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_PRF_PA_ROUNDS - ASCON_PRF_PB_ROUNDS) << 32) | \
((uint64_t)(ASCON_PRF_BYTES * 8) << 0))
#define ASCON_MACA_IV \
(((uint64_t)(CRYPTO_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_PRF_OUT_RATE * 8) << 48) | \
((uint64_t)(0x80 | ASCON_PRFA_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_PRFA_PA_ROUNDS - ASCON_PRFA_PB_ROUNDS) << 32) | \
((uint64_t)(ASCON_PRF_BYTES * 8) << 0))
#define ASCON_PRF_IV \
(((uint64_t)(CRYPTO_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_PRF_OUT_RATE * 8) << 48) | \
((uint64_t)(0x80 | ASCON_PRF_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_PRF_PA_ROUNDS - ASCON_PRF_PB_ROUNDS) << 32))
#define ASCON_PRFA_IV \
(((uint64_t)(CRYPTO_KEYBYTES * 8) << 56) | \
((uint64_t)(ASCON_PRF_OUT_RATE * 8) << 48) | \
((uint64_t)(0x80 | ASCON_PRFA_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_PRFA_PA_ROUNDS - ASCON_PRFA_PB_ROUNDS) << 32))
#define ASCON_PRFS_IV \
(((uint64_t)(CRYPTO_KEYBYTES * 8) << 56) | \
((uint64_t)(0x40 | ASCON_PRF_PA_ROUNDS) << 40) | \
((uint64_t)(ASCON_PRF_BYTES * 8) << 32))
#endif /* CONSTANTS_H_ */