From 6cf83aa33073da3d009079e89b820984cefea7f8 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Mon, 26 Nov 2018 15:00:07 +0100 Subject: Implémentation du mode ΘCB3 : déchiffrement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avec une suite de test qui passe. --- crypto_aead/lilliputaei128v1/ref/lilliput-ae-i.c | 83 +++++++++++++++++++----- 1 file changed, 66 insertions(+), 17 deletions(-) (limited to 'crypto_aead') diff --git a/crypto_aead/lilliputaei128v1/ref/lilliput-ae-i.c b/crypto_aead/lilliputaei128v1/ref/lilliput-ae-i.c index 8ec8295..3226be3 100644 --- a/crypto_aead/lilliputaei128v1/ref/lilliput-ae-i.c +++ b/crypto_aead/lilliputaei128v1/ref/lilliput-ae-i.c @@ -6,6 +6,12 @@ #include "lilliput-ae.h" +static const uint8_t _0n[BLOCK_BYTES] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + static uint8_t _upper_nibble(uint8_t i) { return i >> 4; @@ -16,12 +22,20 @@ static uint8_t _lower_nibble(uint8_t i) return i & 0x0f; } -static void _lilliput_tbc(const uint8_t key[KEY_BYTES], - const uint8_t tweak[TWEAK_BYTES], - const uint8_t message[BLOCK_BYTES], - uint8_t ciphertext[BLOCK_BYTES]) +static void _encrypt(const uint8_t K[KEY_BYTES], + const uint8_t T[TWEAK_BYTES], + const uint8_t M[BLOCK_BYTES], + uint8_t C[BLOCK_BYTES]) +{ + lilliput_tbc_encrypt(K, T, M, C, NULL); +} + +static void _decrypt(const uint8_t K[KEY_BYTES], + const uint8_t T[TWEAK_BYTES], + const uint8_t C[BLOCK_BYTES], + uint8_t M[BLOCK_BYTES]) { - lilliput_tbc_encrypt(key, tweak, message, ciphertext, NULL); + lilliput_tbc_decrypt(K, T, C, M, NULL); } static void _xor_into(uint8_t dest[BLOCK_BYTES], const uint8_t src[BLOCK_BYTES]) @@ -128,7 +142,7 @@ static void _process_associated_data( for (size_t i=0; i