23 #ifndef LWCRYPTO_SKINNY_PLUS_BC_H
24 #define LWCRYPTO_SKINNY_PLUS_BC_H
52 #define SKINNY_128_384_PLUS_KEY_SIZE 48
57 #define SKINNY_128_384_PLUS_BLOCK_SIZE 16
125 const unsigned char *tk3);
144 const unsigned char *input,
size_t len);
163 const unsigned char *input,
size_t len);
190 const unsigned char *input,
const unsigned char *tk1,
size_t len);
217 const unsigned char *input,
const unsigned char *tk1,
size_t len);
252 unsigned char *output,
const unsigned char *input,
size_t len);
272 unsigned char *output,
const unsigned char *input,
size_t len);
size_t skinny_128_384_plus_get_parallel_size(void)
Gets the best size to use for parallel encryption and decryption.
Definition: skinny-plus-bc.c:33
void skinny_128_384_plus_setup_tk23(skinny_128_384_plus_key_schedule_t *ks, const unsigned char *tk2, const unsigned char *tk3)
Sets up the TK2 and TK3 parts of the key schedule for SKINNY-128-384+ without TK1.
Definition: skinny-plus-bc.c:46
void skinny_128_384_plus_ecb_encrypt_tk1(skinny_128_384_plus_key_schedule_t *ks, unsigned char *output, const unsigned char *input, const unsigned char *tk1, size_t len)
Encrypts an array of 128-bit blocks with SKINNY-128-384+ where the TK1 values vary from block to bloc...
Definition: skinny-plus-bc.c:79
void skinny_128_384_plus_free_schedule(skinny_128_384_plus_key_schedule_t *ks)
Frees a SKINNY-128-384+ key schedule and destroys any sensitive data.
Definition: skinny-plus-bc.c:108
void skinny_128_384_plus_ecb_encrypt(const skinny_128_384_plus_key_schedule_t *ks, unsigned char *output, const unsigned char *input, size_t len)
Encrypts an array of 128-bit blocks with SKINNY-128-384+.
Definition: skinny-plus-bc.c:53
void skinny_128_384_plus_expand_and_decrypt(const unsigned char k[SKINNY_128_384_PLUS_KEY_SIZE], unsigned char *output, const unsigned char *input, size_t len)
Expands the key schedule and decrypts an array of blocks with SKINNY-128-384+.
Definition: skinny-plus-bc.c:127
Structure of an expanded SKINNY-128-384+ key schedule.
Definition: skinny-plus-bc.h:72
void skinny_128_384_plus_expand_and_encrypt(const unsigned char k[SKINNY_128_384_PLUS_KEY_SIZE], unsigned char *output, const unsigned char *input, size_t len)
Expands the key schedule and encrypts an array of blocks with SKINNY-128-384+.
Definition: skinny-plus-bc.c:115
void skinny_128_384_plus_setup_key(skinny_128_384_plus_key_schedule_t *ks, const unsigned char k[SKINNY_128_384_PLUS_KEY_SIZE])
Sets up a key schedule for SKINNY-128-384+.
Definition: skinny-plus-bc.c:39
size_t skinny_128_384_plus_get_key_schedule_size(void)
Gets the actual size of the SKINNY-128-384+ key schedule in the back end.
Definition: skinny-plus-bc.c:28
void skinny_128_384_plus_ecb_decrypt_tk1(skinny_128_384_plus_key_schedule_t *ks, unsigned char *output, const unsigned char *input, const unsigned char *tk1, size_t len)
Decrypts an array of 128-bit blocks with SKINNY-128-384+ where the TK1 values vary from block to bloc...
Definition: skinny-plus-bc.c:94
#define SKINNY_128_384_PLUS_KEY_SIZE
Size of the key for SKINNY-128-384+.
Definition: skinny-plus-bc.h:52
void skinny_128_384_plus_ecb_decrypt(const skinny_128_384_plus_key_schedule_t *ks, unsigned char *output, const unsigned char *input, size_t len)
Encrypts an array of 128-bit blocks with SKINNY-128-384+.
Definition: skinny-plus-bc.c:66