23 #ifndef LW_INTERNAL_SKINNY128_H
24 #define LW_INTERNAL_SKINNY128_H
46 #define SKINNY_128_SMALL_SCHEDULE 1
48 #define SKINNY_128_SMALL_SCHEDULE 0
54 #define SKINNY_128_BLOCK_SIZE 16
59 #define SKINNY_128_384_ROUNDS 56
69 #if SKINNY_128_SMALL_SCHEDULE
103 const unsigned char *input);
117 const unsigned char *input);
140 const unsigned char *input,
const unsigned char *tk2);
158 (
const unsigned char key[48],
unsigned char *output,
159 const unsigned char *input);
164 #define SKINNY_128_256_ROUNDS 48
174 #if SKINNY_128_SMALL_SCHEDULE
205 const unsigned char *input);
219 const unsigned char *input);
237 (
const unsigned char key[32],
unsigned char *output,
238 const unsigned char *input);
void skinny_128_256_encrypt(const skinny_128_256_key_schedule_t *ks, unsigned char *output, const unsigned char *input)
Encrypts a 128-bit block with SKINNY-128-256.
Definition: internal-skinny128.c:716
Structure of the key schedule for SKINNY-128-256.
Definition: internal-skinny128.h:169
void skinny_128_384_encrypt_tk2(skinny_128_384_key_schedule_t *ks, unsigned char *output, const unsigned char *input, const unsigned char *tk2)
Encrypts a 128-bit block with SKINNY-128-384 and an explicitly provided TK2 value.
Definition: internal-skinny128.c:498
void skinny_128_256_init(skinny_128_256_key_schedule_t *ks, const unsigned char key[32])
Initializes the key schedule for SKINNY-128-256.
Definition: internal-skinny128.c:599
void skinny_128_384_decrypt(const skinny_128_384_key_schedule_t *ks, unsigned char *output, const unsigned char *input)
Decrypts a 128-bit block with SKINNY-128-384.
Definition: internal-skinny128.c:369
void skinny_128_384_encrypt(const skinny_128_384_key_schedule_t *ks, unsigned char *output, const unsigned char *input)
Encrypts a 128-bit block with SKINNY-128-384.
Definition: internal-skinny128.c:222
void skinny_128_384_encrypt_tk_full(const unsigned char key[48], unsigned char *output, const unsigned char *input)
Encrypts a 128-bit block with SKINNY-128-384 and a fully specified tweakey value. ...
Definition: internal-skinny128.c:553
#define SKINNY_128_256_ROUNDS
Number of rounds for SKINNY-128-256.
Definition: internal-skinny128.h:164
#define SKINNY_128_384_ROUNDS
Number of rounds for SKINNY-128-384.
Definition: internal-skinny128.h:59
Structure of the key schedule for SKINNY-128-384.
Definition: internal-skinny128.h:64
void skinny_128_256_decrypt(const skinny_128_256_key_schedule_t *ks, unsigned char *output, const unsigned char *input)
Decrypts a 128-bit block with SKINNY-128-256.
Definition: internal-skinny128.c:828
void skinny_128_256_encrypt_tk_full(const unsigned char key[32], unsigned char *output, const unsigned char *input)
Encrypts a 128-bit block with SKINNY-128-256 and a fully specified tweakey value. ...
Definition: internal-skinny128.c:892
void skinny_128_384_init(skinny_128_384_key_schedule_t *ks, const unsigned char key[48])
Initializes the key schedule for SKINNY-128-384.
Definition: internal-skinny128.c:61