From ca5d23276808b6b6c4d069e0ce77d776b5d93306 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Tue, 4 Dec 2018 10:30:50 +0100 Subject: [WIP] Réorganisation des traces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lilliputaei128v1/ref/test/traces-ae-128-i.c | 125 -------------------- .../lilliputaei128v1/ref/test/traces-tbc-128-i.c | 60 ---------- .../lilliputaei192v1/ref/test/traces-ae-192-i.c | 127 -------------------- .../lilliputaei192v1/ref/test/traces-tbc-192-i.c | 62 ---------- .../lilliputaei256v1/ref/test/traces-ae-256-i.c | 129 --------------------- .../lilliputaei256v1/ref/test/traces-tbc-256-i.c | 63 ---------- .../lilliputaeii128v1/ref/test/traces-ae-128-ii.c | 125 -------------------- .../lilliputaeii128v1/ref/test/traces-tbc-128-ii.c | 60 ---------- .../lilliputaeii192v1/ref/test/traces-ae-192-ii.c | 127 -------------------- .../lilliputaeii192v1/ref/test/traces-tbc-192-ii.c | 61 ---------- .../lilliputaeii256v1/ref/test/traces-ae-256-ii.c | 129 --------------------- .../lilliputaeii256v1/ref/test/traces-tbc-256-ii.c | 62 ---------- test/common.mk | 35 +++--- test/i-128/Makefile | 3 - test/i-128/traces-ae.c | 125 ++++++++++++++++++++ test/i-128/traces-tbc.c | 60 ++++++++++ test/i-192/Makefile | 3 - test/i-192/traces-ae.c | 127 ++++++++++++++++++++ test/i-192/traces-tbc.c | 62 ++++++++++ test/i-256/Makefile | 3 - test/i-256/traces-ae.c | 129 +++++++++++++++++++++ test/i-256/traces-tbc.c | 63 ++++++++++ test/ii-128/Makefile | 3 - test/ii-128/traces-ae.c | 125 ++++++++++++++++++++ test/ii-128/traces-tbc.c | 60 ++++++++++ test/ii-192/Makefile | 3 - test/ii-192/traces-ae.c | 127 ++++++++++++++++++++ test/ii-192/traces-tbc.c | 61 ++++++++++ test/ii-256/Makefile | 3 - test/ii-256/traces-ae.c | 129 +++++++++++++++++++++ test/ii-256/traces-tbc.c | 62 ++++++++++ traces/collect-traces.sh | 8 +- 32 files changed, 1153 insertions(+), 1168 deletions(-) delete mode 100644 crypto_aead/lilliputaei128v1/ref/test/traces-ae-128-i.c delete mode 100644 crypto_aead/lilliputaei128v1/ref/test/traces-tbc-128-i.c delete mode 100644 crypto_aead/lilliputaei192v1/ref/test/traces-ae-192-i.c delete mode 100644 crypto_aead/lilliputaei192v1/ref/test/traces-tbc-192-i.c delete mode 100644 crypto_aead/lilliputaei256v1/ref/test/traces-ae-256-i.c delete mode 100644 crypto_aead/lilliputaei256v1/ref/test/traces-tbc-256-i.c delete mode 100644 crypto_aead/lilliputaeii128v1/ref/test/traces-ae-128-ii.c delete mode 100644 crypto_aead/lilliputaeii128v1/ref/test/traces-tbc-128-ii.c delete mode 100644 crypto_aead/lilliputaeii192v1/ref/test/traces-ae-192-ii.c delete mode 100644 crypto_aead/lilliputaeii192v1/ref/test/traces-tbc-192-ii.c delete mode 100644 crypto_aead/lilliputaeii256v1/ref/test/traces-ae-256-ii.c delete mode 100644 crypto_aead/lilliputaeii256v1/ref/test/traces-tbc-256-ii.c create mode 100644 test/i-128/traces-ae.c create mode 100644 test/i-128/traces-tbc.c create mode 100644 test/i-192/traces-ae.c create mode 100644 test/i-192/traces-tbc.c create mode 100644 test/i-256/traces-ae.c create mode 100644 test/i-256/traces-tbc.c create mode 100644 test/ii-128/traces-ae.c create mode 100644 test/ii-128/traces-tbc.c create mode 100644 test/ii-192/traces-ae.c create mode 100644 test/ii-192/traces-tbc.c create mode 100644 test/ii-256/traces-ae.c create mode 100644 test/ii-256/traces-tbc.c diff --git a/crypto_aead/lilliputaei128v1/ref/test/traces-ae-128-i.c b/crypto_aead/lilliputaei128v1/ref/test/traces-ae-128-i.c deleted file mode 100644 index 223ab2e..0000000 --- a/crypto_aead/lilliputaei128v1/ref/test/traces-ae-128-i.c +++ /dev/null @@ -1,125 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaei128v1/ref/test/traces-tbc-128-i.c b/crypto_aead/lilliputaei128v1/ref/test/traces-tbc-128-i.c deleted file mode 100644 index c128da2..0000000 --- a/crypto_aead/lilliputaei128v1/ref/test/traces-tbc-128-i.c +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaei192v1/ref/test/traces-ae-192-i.c b/crypto_aead/lilliputaei192v1/ref/test/traces-ae-192-i.c deleted file mode 100644 index 84d3355..0000000 --- a/crypto_aead/lilliputaei192v1/ref/test/traces-ae-192-i.c +++ /dev/null @@ -1,127 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaei192v1/ref/test/traces-tbc-192-i.c b/crypto_aead/lilliputaei192v1/ref/test/traces-tbc-192-i.c deleted file mode 100644 index 251141e..0000000 --- a/crypto_aead/lilliputaei192v1/ref/test/traces-tbc-192-i.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaei256v1/ref/test/traces-ae-256-i.c b/crypto_aead/lilliputaei256v1/ref/test/traces-ae-256-i.c deleted file mode 100644 index c233bcc..0000000 --- a/crypto_aead/lilliputaei256v1/ref/test/traces-ae-256-i.c +++ /dev/null @@ -1,129 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaei256v1/ref/test/traces-tbc-256-i.c b/crypto_aead/lilliputaei256v1/ref/test/traces-tbc-256-i.c deleted file mode 100644 index 6668c8c..0000000 --- a/crypto_aead/lilliputaei256v1/ref/test/traces-tbc-256-i.c +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii128v1/ref/test/traces-ae-128-ii.c b/crypto_aead/lilliputaeii128v1/ref/test/traces-ae-128-ii.c deleted file mode 100644 index 853d3d5..0000000 --- a/crypto_aead/lilliputaeii128v1/ref/test/traces-ae-128-ii.c +++ /dev/null @@ -1,125 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii128v1/ref/test/traces-tbc-128-ii.c b/crypto_aead/lilliputaeii128v1/ref/test/traces-tbc-128-ii.c deleted file mode 100644 index 729f3fe..0000000 --- a/crypto_aead/lilliputaeii128v1/ref/test/traces-tbc-128-ii.c +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii192v1/ref/test/traces-ae-192-ii.c b/crypto_aead/lilliputaeii192v1/ref/test/traces-ae-192-ii.c deleted file mode 100644 index ea48b4b..0000000 --- a/crypto_aead/lilliputaeii192v1/ref/test/traces-ae-192-ii.c +++ /dev/null @@ -1,127 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii192v1/ref/test/traces-tbc-192-ii.c b/crypto_aead/lilliputaeii192v1/ref/test/traces-tbc-192-ii.c deleted file mode 100644 index 5f5929f..0000000 --- a/crypto_aead/lilliputaeii192v1/ref/test/traces-tbc-192-ii.c +++ /dev/null @@ -1,61 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii256v1/ref/test/traces-ae-256-ii.c b/crypto_aead/lilliputaeii256v1/ref/test/traces-ae-256-ii.c deleted file mode 100644 index 343617f..0000000 --- a/crypto_aead/lilliputaeii256v1/ref/test/traces-ae-256-ii.c +++ /dev/null @@ -1,129 +0,0 @@ -#include -#include - -#include "lilliput-ae.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t nonce[NONCE_BYTES]; - size_t auth_len; - uint8_t *auth; - size_t message_len; - uint8_t *message; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 64, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - }, - .message_len = 64, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - } - }, - { - .name = "order-padded", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .nonce = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e - }, - .auth_len = 66, - .auth = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - }, - .message_len = 66, - .message = (uint8_t[]) { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x01 - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", v->message_len, v->message, 0); - debug_dump_buffer("associated data", v->auth_len, v->auth, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); - - uint8_t ciphertext[v->message_len]; - uint8_t tag[TAG_BYTES]; - - lilliput_ae_encrypt( - v->message_len, v->message, - v->auth_len, v->auth, - v->key, v->nonce, - ciphertext, - tag - ); - - debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); - debug_dump_buffer("tag", TAG_BYTES, tag, 0); - - fclose(DUMP); - } -} diff --git a/crypto_aead/lilliputaeii256v1/ref/test/traces-tbc-256-ii.c b/crypto_aead/lilliputaeii256v1/ref/test/traces-tbc-256-ii.c deleted file mode 100644 index 217d335..0000000 --- a/crypto_aead/lilliputaeii256v1/ref/test/traces-tbc-256-ii.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include - -#include "cipher.h" - -#include "debug.h" -#include "test-helpers.h" - - -FILE *DUMP; - - -struct vector -{ - char *name; - uint8_t key[KEY_BYTES]; - uint8_t tweak[TWEAK_BYTES]; - uint8_t message[BLOCK_BYTES]; -}; - -typedef struct vector vector; - - -const vector VECTORS[] = { - { - .name = "order", - .key = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }, - .tweak = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - }, - .message = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - } - } -}; - - -int main() -{ - for (const vector *v=VECTORS; vname); - debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); - debug_dump_buffer("key", KEY_BYTES, v->key, 0); - debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); - - uint8_t ciphertext[BLOCK_BYTES]; - - lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); - - debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); - - fclose(DUMP); - } -} diff --git a/test/common.mk b/test/common.mk index 6ec544d..e855ad7 100644 --- a/test/common.mk +++ b/test/common.mk @@ -8,6 +8,7 @@ endif tests = $(basename $(wildcard test-*.c)) +traces = $(basename $(wildcard traces-*.c)) test_dir = $(dir $(lastword $(MAKEFILE_LIST))) @@ -22,7 +23,7 @@ CFLAGS += -I$(src_dir) -I$(variant_dir) $(nist_flags) -Werror LDFLAGS += $(nist_flags) -.PHONY: clean test $(tests) +.PHONY: clean test $(tests) traces $(traces) clean: @@ -32,33 +33,41 @@ $(results_dir) $(results_dir)/src $(results_dir)/test: @ mkdir -p $@ test: $(tests) +trace: $(traces) $(tests): test-%: $(results_dir)/test-% @ echo "TEST $@" $(Q) $< +$(traces): traces-%: $(results_dir)/traces-% + @ echo "TRACES $@" + $(Q) $< $(results_dir)/test-%: $(results_dir)/test/test-%.o @ echo "LD $@" $(Q) gcc $^ $(LDFLAGS) -o $@ -$(results_dir)/src/%.o: $(src_dir)/%.c | $(results_dir)/src +$(results_dir)/traces-%: $(results_dir)/test/traces-%.o + @ echo "LD $@" + $(Q) gcc $^ $(LDFLAGS) -o $@ + +$(results_dir)/test/%.o: %.c | $(results_dir)/test @ echo "CC $@" $(Q) gcc -c $< $(CFLAGS) -o $@ -$(results_dir)/test/%.o: %.c | $(results_dir)/test +$(results_dir)/src/%.o: $(src_dir)/%.c | $(results_dir)/src @ echo "CC $@" $(Q) gcc -c $< $(CFLAGS) -o $@ # Program => additional objects dependencies -$(results_dir)/test-tbc-decrypt $(results_dir)/test-tbc-encrypt: \ -$(results_dir)/src/cipher.o $(results_dir)/src/tweakey.o \ +$(results_dir)/test-tbc-decrypt $(results_dir)/test-tbc-encrypt $(results_dir)/traces-tbc: \ +$(results_dir)/src/cipher.o $(results_dir)/src/tweakey.o \ $(results_dir)/src/constants.o -$(results_dir)/test-ae-decrypt $(results_dir)/test-ae-encrypt $(results_dir)/test-ae-roundtrip: \ -$(results_dir)/src/lilliput-ae-$(mode).o $(results_dir)/src/cipher.o \ +$(results_dir)/test-ae-decrypt $(results_dir)/test-ae-encrypt $(results_dir)/test-ae-roundtrip $(results_dir)/traces-ae: \ +$(results_dir)/src/lilliput-ae-$(mode).o $(results_dir)/src/cipher.o \ $(results_dir)/src/tweakey.o $(results_dir)/src/constants.o $(results_dir)/test-tweakey: \ @@ -72,21 +81,19 @@ $(variant_dir)/_parameters.h $(results_dir)/$(src_dir)/constants.o: $(src_dir)/constants.h -$(results_dir)/$(src_dir)/lilliput-ae-i.o: $(src_dir)/lilliput-ae.h \ -$(src_dir)/cipher.h $(src_dir)/parameters.h \ -$(variant_dir)/_parameters.h - -$(results_dir)/$(src_dir)/lilliput-ae-ii.o: $(src_dir)/lilliput-ae.h \ -$(src_dir)/cipher.h $(src_dir)/parameters.h \ +$(results_dir)/$(src_dir)/lilliput-ae-i.o $(results_dir)/$(src_dir)/lilliput-ae-ii.o: \ +$(src_dir)/lilliput-ae.h $(src_dir)/cipher.h $(src_dir)/parameters.h \ $(variant_dir)/_parameters.h $(results_dir)/$(src_dir)/tweakey.o: $(src_dir)/tweakey.h \ $(src_dir)/constants.h $(src_dir)/parameters.h \ $(variant_dir)/_parameters.h -$(results_dir)/test/test-tbc-encrypt.o $(results_dir)/test/test-tbc-encrypt.o: \ +$(results_dir)/test/test-tbc-encrypt.o $(results_dir)/test/test-tbc-decrypt.o $(results_dir)/test/traces-tbc.o: \ $(src_dir)/cipher.h +$(results_dir)/test/test-ae-encrypt.o $(results_dir)/test/test-ae-decrypt.o $(results_dir)/test/test-ae-roundtrip.o $(results_dir)/test/traces-ae.o: \ +$(src_dir)/lilliput-ae.h # TODO: add valgrind, although it does not seem to play well with ASAN diff --git a/test/i-128/Makefile b/test/i-128/Makefile index 0c47ef0..c380514 100644 --- a/test/i-128/Makefile +++ b/test/i-128/Makefile @@ -2,6 +2,3 @@ mode = i keylen = 128 include ../common.mk - -results/traces-ae-128-i: results/src/lilliput-ae-i.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-128-i: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/i-128/traces-ae.c b/test/i-128/traces-ae.c new file mode 100644 index 0000000..223ab2e --- /dev/null +++ b/test/i-128/traces-ae.c @@ -0,0 +1,125 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/i-128/traces-tbc.c b/test/i-128/traces-tbc.c new file mode 100644 index 0000000..c128da2 --- /dev/null +++ b/test/i-128/traces-tbc.c @@ -0,0 +1,60 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/test/i-192/Makefile b/test/i-192/Makefile index a1c2edf..83921dc 100644 --- a/test/i-192/Makefile +++ b/test/i-192/Makefile @@ -2,6 +2,3 @@ mode = i keylen = 192 include ../common.mk - -results/traces-ae-192-i: results/src/lilliput-ae-i.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-192-i: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/i-192/traces-ae.c b/test/i-192/traces-ae.c new file mode 100644 index 0000000..84d3355 --- /dev/null +++ b/test/i-192/traces-ae.c @@ -0,0 +1,127 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/i-192/traces-tbc.c b/test/i-192/traces-tbc.c new file mode 100644 index 0000000..251141e --- /dev/null +++ b/test/i-192/traces-tbc.c @@ -0,0 +1,62 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/test/i-256/Makefile b/test/i-256/Makefile index a07df90..5ab0411 100644 --- a/test/i-256/Makefile +++ b/test/i-256/Makefile @@ -2,6 +2,3 @@ mode = i keylen = 256 include ../common.mk - -results/traces-ae-256-i: results/src/lilliput-ae-i.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-256-i: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/i-256/traces-ae.c b/test/i-256/traces-ae.c new file mode 100644 index 0000000..c233bcc --- /dev/null +++ b/test/i-256/traces-ae.c @@ -0,0 +1,129 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/i-256/traces-tbc.c b/test/i-256/traces-tbc.c new file mode 100644 index 0000000..6668c8c --- /dev/null +++ b/test/i-256/traces-tbc.c @@ -0,0 +1,63 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-128/Makefile b/test/ii-128/Makefile index 0fc4b6c..8a07660 100644 --- a/test/ii-128/Makefile +++ b/test/ii-128/Makefile @@ -2,6 +2,3 @@ mode = ii keylen = 128 include ../common.mk - -results/traces-ae-128-ii: results/src/lilliput-ae-ii.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-128-ii: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/ii-128/traces-ae.c b/test/ii-128/traces-ae.c new file mode 100644 index 0000000..853d3d5 --- /dev/null +++ b/test/ii-128/traces-ae.c @@ -0,0 +1,125 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-128/traces-tbc.c b/test/ii-128/traces-tbc.c new file mode 100644 index 0000000..729f3fe --- /dev/null +++ b/test/ii-128/traces-tbc.c @@ -0,0 +1,60 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-192/Makefile b/test/ii-192/Makefile index 3c18f22..29f85d6 100644 --- a/test/ii-192/Makefile +++ b/test/ii-192/Makefile @@ -2,6 +2,3 @@ mode = ii keylen = 192 include ../common.mk - -results/traces-ae-192-ii: results/src/lilliput-ae-ii.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-192-ii: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/ii-192/traces-ae.c b/test/ii-192/traces-ae.c new file mode 100644 index 0000000..ea48b4b --- /dev/null +++ b/test/ii-192/traces-ae.c @@ -0,0 +1,127 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-192/traces-tbc.c b/test/ii-192/traces-tbc.c new file mode 100644 index 0000000..5f5929f --- /dev/null +++ b/test/ii-192/traces-tbc.c @@ -0,0 +1,61 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-256/Makefile b/test/ii-256/Makefile index 211ce25..ca7d5a3 100644 --- a/test/ii-256/Makefile +++ b/test/ii-256/Makefile @@ -2,6 +2,3 @@ mode = ii keylen = 256 include ../common.mk - -results/traces-ae-256-ii: results/src/lilliput-ae-ii.o results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src -results/traces-tbc-256-ii: results/src/cipher.o results/src/tweakey.o results/src/constants.o | results/src diff --git a/test/ii-256/traces-ae.c b/test/ii-256/traces-ae.c new file mode 100644 index 0000000..343617f --- /dev/null +++ b/test/ii-256/traces-ae.c @@ -0,0 +1,129 @@ +#include +#include + +#include "lilliput-ae.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t nonce[NONCE_BYTES]; + size_t auth_len; + uint8_t *auth; + size_t message_len; + uint8_t *message; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 64, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + }, + .message_len = 64, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + } + }, + { + .name = "order-padded", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .nonce = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e + }, + .auth_len = 66, + .auth = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + }, + .message_len = 66, + .message = (uint8_t[]) { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x01 + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", v->message_len, v->message, 0); + debug_dump_buffer("associated data", v->auth_len, v->auth, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("nonce", NONCE_BYTES, v->nonce, 0); + + uint8_t ciphertext[v->message_len]; + uint8_t tag[TAG_BYTES]; + + lilliput_ae_encrypt( + v->message_len, v->message, + v->auth_len, v->auth, + v->key, v->nonce, + ciphertext, + tag + ); + + debug_dump_buffer("ciphertext", v->message_len, ciphertext, 0); + debug_dump_buffer("tag", TAG_BYTES, tag, 0); + + fclose(DUMP); + } +} diff --git a/test/ii-256/traces-tbc.c b/test/ii-256/traces-tbc.c new file mode 100644 index 0000000..217d335 --- /dev/null +++ b/test/ii-256/traces-tbc.c @@ -0,0 +1,62 @@ +#include +#include + +#include "cipher.h" + +#include "debug.h" +#include "test-helpers.h" + + +FILE *DUMP; + + +struct vector +{ + char *name; + uint8_t key[KEY_BYTES]; + uint8_t tweak[TWEAK_BYTES]; + uint8_t message[BLOCK_BYTES]; +}; + +typedef struct vector vector; + + +const vector VECTORS[] = { + { + .name = "order", + .key = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + }, + .tweak = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + }, + .message = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + } + } +}; + + +int main() +{ + for (const vector *v=VECTORS; vname); + debug_dump_buffer("message", BLOCK_BYTES, v->message, 0); + debug_dump_buffer("key", KEY_BYTES, v->key, 0); + debug_dump_buffer("tweak", TWEAK_BYTES, v->tweak, 0); + + uint8_t ciphertext[BLOCK_BYTES]; + + lilliput_tbc_encrypt(v->key, v->tweak, v->message, ciphertext); + + debug_dump_buffer("ciphertext", BLOCK_BYTES, ciphertext, 0); + + fclose(DUMP); + } +} diff --git a/traces/collect-traces.sh b/traces/collect-traces.sh index 2b5eb1e..16e8408 100755 --- a/traces/collect-traces.sh +++ b/traces/collect-traces.sh @@ -13,16 +13,12 @@ d=$(mktemp -d) git apply ${patch} -for makefile in $(find crypto_aead -name Makefile) +for makefile in $(find test -name Makefile) do implem_dir=$(dirname ${makefile}) make -C ${implem_dir} clean - [[ ${implem_dir} =~ lilliputae(i|ii)([0-9]+)v ]] - - ae_type=${BASH_REMATCH[1]} - keysize=${BASH_REMATCH[2]} - make -C ${implem_dir} ${trace_type}-${keysize}-${ae_type} + make -C ${implem_dir} ${trace_type} cp ${implem_dir}/results/traces*.txt ${d} done -- cgit v1.2.3