#ifndef CONSTANTS_H_ #define CONSTANTS_H_ #include #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_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_128_IV 0x8021000008220000ull #define ASCON_128A_IV 0x8822000000200000ull #define ASCON_80PQ_IV 0xc021000008220000ull #define ASCON_HASH_IV 0x0020000008200010ull #define ASCON_HASHA_IV 0x0020000008220010ull #define ASCON_XOF_IV 0x0020000008200000ull #define ASCON_XOFA_IV 0x0020000008220000ull #define ASCON_PRF_IV 0x88a0000000200000ull #define ASCON_MAC_IV 0x88a0000800200000ull #define ASCON_PRFS_IV 0x8028000000a00000ull #define ASCON_HASH_IV0 0xf9afb5c6a540dbc7ull #define ASCON_HASH_IV1 0xbd2493011445a340ull #define ASCON_HASH_IV2 0xcb9ba8b5604d4fc8ull #define ASCON_HASH_IV3 0x12a4eede94514c98ull #define ASCON_HASH_IV4 0x4bca84c06339f398ull #define ASCON_HASHA_IV0 0x0108e46d1b16eb02ull #define ASCON_HASHA_IV1 0x5b9b8efdd29083f3ull #define ASCON_HASHA_IV2 0x7ad665622891ae4aull #define ASCON_HASHA_IV3 0x9dc27156ee3bfc7full #define ASCON_HASHA_IV4 0xc61d5fa916801633ull #define ASCON_XOF_IV0 0xc75782817e351ae6ull #define ASCON_XOF_IV1 0x70045f441d238220ull #define ASCON_XOF_IV2 0x5dd5ab52a13e3f04ull #define ASCON_XOF_IV3 0x3e378142c30c1db2ull #define ASCON_XOF_IV4 0x3735189db624d656ull #define ASCON_XOFA_IV0 0x0846d7a5a4b87d44ull #define ASCON_XOFA_IV1 0xaa6f1005b3a2dbf4ull #define ASCON_XOFA_IV2 0xdc451146f713e811ull #define ASCON_XOFA_IV3 0x468cb2532839e30dull #define ASCON_XOFA_IV4 0xeb2d429709e96977ull #define RC0 0x0000000c0000000cull #define RC1 0x0000000c00000009ull #define RC2 0x000000090000000cull #define RC3 0x0000000900000009ull #define RC4 0x0000000c00000006ull #define RC5 0x0000000c00000003ull #define RC6 0x0000000900000006ull #define RC7 0x0000000900000003ull #define RC8 0x000000060000000cull #define RC9 0x0000000600000009ull #define RCa 0x000000030000000cull #define RCb 0x0000000300000009ull #define RC(i) ((uint64_t)constants[i + 1] << 32 | constants[i]) #define START(n) (24 - 2 * (n)) #define INC 2 #define END 24 extern const uint8_t constants[]; #endif /* CONSTANTS_H_ */