From 4582b5447826886a4ce7f5cd095daed2513d352d Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Tue, 12 Mar 2019 10:42:10 +0100 Subject: Ajout de l'implémentation à seuil d'ordre 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modifications nécessaires dans l'infra : - retrait conditionnel de test-tweakey, vu que l'API n'est pas la même pour l'implémentation à seuil, - retrait conditionnel de l'avertissement "-Wparentheses", plus agaçant qu'autre chose sur les calculs booléens de cipher.c, e.g. y_hi&3 ^ (y_hi&8)>>1 où la priorité est intuitive (shifts avant AND avant XOR). C'est dommage de perdre les avertissements sur if (a&b == c), mais tant pis… On va compter sur La Suite De Test®©™ pour nous couvrir. Co-authored-by: Alexandre Adomnicai Co-authored-by: leo --- src/add_threshold/tweakey.h | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/add_threshold/tweakey.h (limited to 'src/add_threshold/tweakey.h') diff --git a/src/add_threshold/tweakey.h b/src/add_threshold/tweakey.h new file mode 100644 index 0000000..c76d655 --- /dev/null +++ b/src/add_threshold/tweakey.h @@ -0,0 +1,47 @@ +/* +Implementation of the Lilliput-AE tweakable block cipher. + +Authors: + Kévin Le Gouguec, + Léo Reynaud, + Alexandre Adomnicai, 2019. + +For more information, feedback or questions, refer to our website: +https://paclido.fr/lilliput-ae + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ + +--- + +This file provides the interface for Lilliput-TBC's tweakey schedule. +*/ + +#ifndef TWEAKEY_H +#define TWEAKEY_H + +#include + +#include "constants.h" + + +void tweakey_state_init_TI( + uint8_t TK_X[TWEAKEY_BYTES], + uint8_t TK_Y[TWEAKEY_BYTES], + const uint8_t key[KEY_BYTES], + const uint8_t tweak[TWEAK_BYTES] +); + +void tweakey_state_extract_TI( + const uint8_t TK_X[TWEAKEY_BYTES], + const uint8_t TK_Y[KEY_BYTES], + uint8_t round_constant, + uint8_t round_tweakey_X[ROUND_TWEAKEY_BYTES], + uint8_t round_tweakey_Y[ROUND_TWEAKEY_BYTES] +); + +void tweakey_state_update_TI(uint8_t TK_X[TWEAKEY_BYTES], uint8_t TK_Y[KEY_BYTES]); + + +#endif /* TWEAKEY_H */ -- cgit v1.2.3